当前位置: 首页 > news >正文

Java学习笔记--13.网络编程

Java学习笔记–13

第十章 网络编程

目录

    • Java学习笔记--13
  • 前言
  • 网络编程
    • 1.定义
    • 2.TCP通信
      • (1).ServerSocket
      • (2).Socket
    • 3.UDP通信
      • (1).发送方
      • (2).接收方


前言

21世纪,走进了信息时代,各种各样的软件层出不穷,但是总离不开程序开发,离不开程序开发语言,Java语言作为人们所熟知的一门语言,对于其有必要进行系统的学习。


网络编程

1.定义

 网络编程即Socket套接字编程,使用一个服务器,支持多个客户端进行数据传递;

2.TCP通信

TCP通信需要服务器端与客户端进行连接,其中ServerSocket
即服务器端的Socket,可以创建一个服务器,使得其它客户端
可以进行连接并进行交互访问;

(1).ServerSocket

 try {ServerSocket server=new ServerSocket(8080);//实例化ServerSocket对象,参数为端口号while(true){System.out.println("--等待连接");Socket client= server.accept();//获取客户端连接if(client!=null){System.out.println("--连接成功"+client.getInetAddress());OutputStream outputStream = client.getOutputStream();//获取客户端的输出流outputStream.write("Hello World".getBytes());System.out.println("发送成功");outputStream.close();}}} catch (IOException e) {e.printStackTrace();}

在这里插入图片描述

(2).Socket

Socket即创建客户端,可以连接服务器,并进行数据交互
	Socket client = new Socket("localhost", 8080);//实例化客户端,第一个参数为IP地址,第二个为端口号System.out.println("--连接成功");int a = 0;int b = 0;byte[] by = new byte[100];InputStream inputStream = client.getInputStream();//获取当前客户端的输入流String str = "";while ((a = inputStream.read()) != -1) {by[b++] = (byte) a;}System.out.println(new String(by));//输出数据inputStream.close();} catch (IOException e) {e.printStackTrace();}

在这里插入图片描述

3.UDP通信

UDP通信是的发送方与接收方不需要进行连接,故其数据传输并
不安全,其需要使用到DatagramSocket与DatagramPacket

(1).发送方

	try {DatagramSocket sender=new DatagramSocket();//实例化DatagramSocket对象byte[] data="Hello World".getBytes();//将数据转换成字节形式//实例化DatagramPacket对象,参数依次为,需要传输的字节数据,起始位置,结束为止,目标ip地址,端口号DatagramPacket packet=new DatagramPacket(data,0,data.length, InetAddress.getByName("localhost"),8080);sender.send(packet);//发送数据包} catch (SocketException | UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}

(2).接收方

	try {DatagramSocket receiver=new DatagramSocket(8080);//指定监听的端口号byte[] data=new byte[100];DatagramPacket packet=new DatagramPacket(data,data.length);while (true){receiver.receive(packet);//接收数据System.out.println(new String(data));}} catch (UnknownHostException | SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}

笔记如有错误,遗漏之处,欢迎指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35035.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

wimform 继承窗体卡顿解决

get { const int CS_NOCLOSE 0x200; CreateParams cp base.CreateParams; cp.ClassStyle cp.ClassStyle | CS_NOCLOSE; if (!DesignMode) { cp.ExStyle...

解决for循环中异步请求顺序不一致的问题

解决for循环中异步请求顺序不一致的问题参考文章: (1)解决for循环中异步请求顺序不一致的问题 (2)https://www.cnblogs.com/mo3408/p/12163012.html 备忘一下。...

可以ping通网关,dns。但是死活不能上网????怎么回事?

苹果电脑重装了一把win7系统。连接手机热点没问题,连接店里wifi也没问题。但是呢连接家里wifi死活不能上网!!! 各种网上搜索啊,花了三四个小时,找到了各种解决方法,比如什么winsock reset还有什…...

Spring都没弄明白凭什么拿高薪?真香系列

正文 二叉树 由 n( n > 0)个有限节点组成一个具有层次关系的集合,看起来就像一个倒挂的树,因此称这样的数据结构为树。 一个节点的子节点个数叫做度,通俗的讲就是树叉的个数。树中最大的度叫做树的度&#xff0c…...

一天一道ctf 第36天

[NPUCTF2020]ReadlezPHP 点进源码发现/time.php?source&#xff0c;访问一下得到 <?php #error_reporting(0); class HelloPhp {public $a;public $b;public function __construct(){$this->a "Y-m-d h:i:s";$this->b "date";}public functi…...

dockerfile的详细介绍

Dockerfile 关键字作用备注FROM指定父镜像指定dockerfile基于那个image构建MAINTAINER作者信息用来标明这个dockerfile谁写的LABEL标签用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看RUN执行命令执行一段命令 默认是/bin/sh…...

nacos心跳

轮询 概括来说是服务端定时主动的去与要监控状态的客户端&#xff08;或者叫其他系统&#xff09;通信&#xff0c;询问当前的某种状态&#xff0c;客户端返回状态信息&#xff0c;客户端没有返回或返回错误、失效信息、则认为客户端已经宕机&#xff0c;然后服务端自己内部把这…...

408数据结构I 数据结构的基本概念

数据结构的基本概念 数据 数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合&#xff0c;数据是计算机程序加工的原料。 数据元素 是数据的基本单位&#xff0c;通常作为一个整体进行考虑和处理。 数…...

C语言实现学生成绩管理系统(Easy图形界面)

我的小站——半生瓜のblog 代码文件下载链接——链接 学生成绩管理系统学生成绩管理系统效果图流程&注意要点代码实现学生成绩管理系统 效果图 流程&注意要点 核心部分——EasyX显示图形界面&#xff0c;结构体数组和文件操作负责对数据进行各种操作。只要一进去程序…...

Unity常见合批失败

测试的时候注意两点&#xff1a; 1 运行起来编辑器在看结果 2 多用framedebuger 3 framedebuger观测结果时主要注意Shadows.RenderShadowMap中的Shadows.RenderJobDir和RenderForward.RenderLoopJob。可以看出来合批主要是在这两个函数中实现作用&#xff0c;分别是描画阴影…...

Linux使用命令行工具管理用户和组

文章目录一、管理用户账户1.查看用户账户2.添加用户账户3.管理用户账户密码4.修改用户账户5.删除用户账户二、管理组账户1.创建组账户2.修改组账户3.删除组账户4.管理组成员一、管理用户账户 1.查看用户账户 Linux没有直接查看用户列表的命令&#xff0c;但是可以查看用户配置…...

直面秋招!花了6个月肝完阿里技术官的笔记

2. ZooKeeper 介绍 2.1. ZooKeeper 由来 正式介绍 ZooKeeper 之前&#xff0c;我们先来看看 ZooKeeper 的由来&#xff0c;还挺有意思的。 下面这段内容摘自《从 Paxos 到 ZooKeeper 》第四章第一节&#xff0c;推荐大家阅读一下&#xff1a; ZooKeeper 最早起源于雅虎研究院…...

2021制造业数字化案例大会暨探营海尔数字化创新”在青岛盛大开幕

5月29日&#xff0c;“2021制造业数字化案例大会暨探营海尔数字化创新”活动在青岛成功举办。本次活动由由数字产业创新研究中心主办&#xff0c;锦囊专家、首席数字官、承办&#xff0c;海尔集团、山东省CIO联盟、青岛CIO联盟协办&#xff0c;邀请海尔集团的多位数字化高管和十…...

MySQL数据库从小白到小菜04

MySQL数据库从小白到小菜04MySQL进阶补充插入聚合查询COUNTSUMAVGMAXMINGROUP BYHAVING联合查询内连接外连接MySQL进阶补充 插入 在表中插入数据时用的是INSERT&#xff0c;在MySQL中&#xff0c;是可以插入(查找结果表)的数据&#xff0c;但是结果表每一列的顺序类型都必须与…...

Linux高级存储管理

Linux高级存储管理1.lvm定义1.1 逻辑卷2.lvm的建立3.lvm的拉伸4. lvm缩减5.lvm快照6.lvm设备的删除7.管理vdo设备1.lvm定义 1.1 逻辑卷 逻辑卷主要适用于解决存储空间扩展问题&#xff0c;逻辑卷可以利用软件实现无限扩展。LVM可以实现把新的物理分区重组成物理卷&#xff0c…...

2021-06-11 VMware centos7 无线网络配置

一、虚拟机设置 VMware界面最上面&#xff0c;选择虚拟机->设置&#xff1a;将网络连接改为桥接模式&#xff0c;如下图所示&#xff1a; 二、查看主机DNS地址 winR 输入cmd&#xff0c;启动命令行界面&#xff0c;输入ipconfig/all&#xff0c;查看主机DNS服务器地址&#…...

Anime+Vue<svg画线动画>从安装到入门使用

1.安装Anime并全局使用 npm install animejs --saveimport anime from "animejs";2.在阿里巴巴矢量图标库复制&#xff08;或者下载&#xff09;svg到页面中,注意&#xff1a;画线动画svg图标stroke属性必须有颜色值。不然看到个毛线! <template> <div> …...

2021多校第二场F 简单计算几何模板(球体相交体积)

简单板子题题意代码题意 [原题链接](https://ac.nowcoder.com/acm/contest/11253/F) 大致题意&#xff1a; 有A&#xff0c;B&#xff0c;C&#xff0c;D四个点&#xff08;三维坐标&#xff09;和k1&#xff0c;k2两个常数 在空间上取一点P1使 |AP1|/|BP1|k1 &#xff08;所有…...

NoSQL NewSQL

OldSQLNewSQLNoSQL分类关系型关系型非关系型非关系型应用场景交易型&#xff1a;实时&#xff0c;面向应用&#xff0c;关注热数据交易型&#xff1a;实时&#xff0c;面向应用&#xff0c;关注热数据分析型&#xff1a;非实时&#xff0c;面向统计分析&#xff0c;关注全部数据…...

BUUCTF 逆向工程(reverse)之Java逆向解密

程序员小张不小心弄丢了加密文件用的秘钥&#xff0c;已知还好小张曾经编写了一个秘钥验证算法&#xff0c;聪明的你能帮小张找到秘钥吗&#xff1f; 注意&#xff1a;得到的 flag 请包上 flag{} 提交 下载好题目后&#xff0c;发现它是个以.class为后缀的。所以用JD-GUI打开这…...

JavaScript-DOM、BOM对象

DOM对象 功能&#xff1a;控制html文档的内容 1、获取页面标签(元素)对象&#xff1a;Element 方法&#xff1a;document.getElementById(“id值”)&#xff1a;通过元素id获取元素对象、 2、操作Element对象&#xff1a; 1&#xff09;. 修改属性值&#xff1a; 明确获取的对…...

[高维随机矩阵-2]

本系列主要按照《Introduction to random matrices theory and practice》进行&#xff0c;后续不再一一声明。每次使用新资料&#xff0c;都会在第一次使用时声明&#xff0c;后续也不再一一生明。 1. 本书目标读者是绝对的零基础人员。 2.随机矩阵理论random matirx theory…...

目前最简多模态transformer:ViLT

facebook的文章&#xff0c;一句话概括&#xff1a;图像patch和文本embedding concat在一起过transformer&#xff0c;做图像-文本匹配任务 相比之前的多模态transformer&#xff0c;创新点在用Vit的patch方案作为visual embedding而不是先过CNN提取特征&#xff0c;或者更繁琐…...

Vue相关:

目录 1,说一下vue最大特点是什么或者说vue核心是什么 2,说一下vue常用基本指令有哪些 3,Vue常用的修饰符...

BUUCTF 逆向工程(reverse)之Java逆向解密

程序员小张不小心弄丢了加密文件用的秘钥&#xff0c;已知还好小张曾经编写了一个秘钥验证算法&#xff0c;聪明的你能帮小张找到秘钥吗&#xff1f; 注意&#xff1a;得到的 flag 请包上 flag{} 提交 下载好题目后&#xff0c;发现它是个以.class为后缀的。所以用JD-GUI打开这…...

整理了 34 个 Python 自动化办公库

本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库,希望能够对大家有所帮助。 Python Excel自动化库 // 1.xlwings 库 官网: https://www.xlwings.org/ 特点:xlwings 是开源且免费的,预装了 Anaconda 和 WinPython,可…...

FOXIT PDF SDK 8.1 ALL Crack

Foxit PDF SDK&#xff08;Windows版&#xff09; 提供三种库&#xff1a;C库、C#&#xff08;.NET&#xff09;库、和Java库&#xff0c;Ω578867473在客户端和服务端环境下均可运行&#xff08;32位和64位系统&#xff09;。 查看PDF 我们的核心API针对桌面和移动平台进行了优…...

wimform 继承窗体卡顿解决

get { const int CS_NOCLOSE 0x200; CreateParams cp base.CreateParams; cp.ClassStyle cp.ClassStyle | CS_NOCLOSE; if (!DesignMode) { cp.ExStyle...

【DDD架构】

DDD&#xff08;domain driven design&#xff09;领域驱动设计模型 一、DP(domain primitive) 1、什么是DP dp是一种基本类型&#xff0c;包括type&#xff08;数据类型&#xff09;和class&#xff08;类&#xff09;。 public class PhoneNumber {private final String …...

从入门到放弃:Markdown中的LaTeX使用教程

LaTeX CSDN不支持显示的语法我已用 标注显示 基本语法 展现形式 在正文中的LaTeX公式用$...$定义行内公式&#xff0c;$$...$$单独居中显示 希腊字母 显示命令显示命令α\alphaβ\betaγ\gammaδ\deltaε\epsilonζ\zetaη\etaθ\thetaι\iotaκ\kappaλ\lambdaμ\muν\…...

dbc2000 注册机|dbc2000 注册码注册机下载

点击下载来源&#xff1a;dbc2000 注册机 dbc2000 注册机是同名源程序软件的注册机软件&#xff0c;该源程序软件是一款应用于数据库搭建以及数据写入的数据库架设工具&#xff0c;它拥有强大的数据写入功能&#xff0c;在作为应用程序使用时&#xff0c;它不仅可以充当数据属性…...

秋招面经第八弹:网易二面-数据开发工程师

秋招第八弹&#xff1a;网易二面-数据开发工程师 写在最前&#xff1a;秋招以来一直在冲&#xff0c;因为事情比较多&#xff0c;对于笔试面试一直没有复盘&#xff0c;现在靠仅存的记忆把面试的一些问题记录下来&#xff0c;尽可能记录出能回忆到的问题&#xff0c;但可能记的…...

安卓课程格子APP

https://download.csdn.net/download/weixin_57836618/73810452 功能演示&#xff1a; 查看所有课程 点击主页面空白处即可添加课程 添加课程之后查看课程 查看双周课程 查看单周课程 6.查看课程详情...

强化学习——格子世界

强化学习——格子世界 项目源码地址&#xff1a;https://gitee.com/infiniteStars/machine-learning-experiment 1. 实验内容 2. 实验代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.table import Table from xml.dom.minidom import Document #手…...

华为机试 - 跳格子游戏

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 地上共有N个格子&#xff0c;你需要跳完地上所有的格子&#xff0c;但是格子间是有强依赖关系的&#xff0c;跳完前一个格子后&#xff0c;后续的格子才会被开启&#xff0c;格子间的依赖关系由多组st…...

php 爬课程表信息,Ruby爬取教务系统生成课程表

我为什么要虐自己最近觉得课程格子广告越来越多&#xff0c;乱七八糟的东西越来越多&#xff0c;完全失去了一开始的存在价值&#xff0c;并且没有电脑端app&#xff0c;想查看课程必须拿出手机&#xff0c;而我使用电脑频率要比手机高&#xff0c;所以才有了折腾的动力。于是我…...

android 课程表 ui,UICollectionViewLayout实现课程表布局

因为项目中有课程表的相关模块&#xff0c;第一时间想到用UICollectionView。然而后期的需求越来越复杂&#xff0c;每个格子需要展示的内容越来越多&#xff0c;所以不得不寻找合适的解决方案。最后发现自定义UICollectionViewLayout可以实现我的需求。先放效果图&#xff1a;…...

Android自定义View课程表,Android 自定义View课程表表格

自己闲下来时间写的一个课表控件使用的自定义LinearLayout 里面View都是用代码实现的 最终效果如下图 写的可能有问题希望多多指点创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数 和节数大概的布局三这样的根据上面的看来觉得总体布局我分了两个 上面的星期是…...

java课程设计设计_java课程设计

1. 团队课程设计博客链接https://www.cnblogs.com/choco1ate/p/12172223.html2.本组课题及本人任务本组课题&#xff1a;泡泡堂(炸弹人)游戏本人任务&#xff1a;Box类(游戏地图中的每个方格)Bomb类(游戏过程中的)游戏玩家输赢信息的文件储存3.需求分析Box类&#xff1a;该类为…...

《课程格子》的一个笔试题目

题目如下&#xff0c;感觉很适合喜欢琢磨的程序员&#xff0c;也是考验你编码风格的时候。 Lets make a tower defense game&#xff08;塔防游戏):1. You have 1 tower, with H health and D dps(damage per second).2. There are n attackers, each with h_i health and d_i …...

Android仿照超级课程表 or 课程格子 一键提取课表功能(方正系统)

参考文章http://blog.csdn.net/sbsujjbcy ,本文仿照‘ 安卓弟 提供的android 项目实战——打造超级课程表一键提取课表功能文章&#xff0c;对他的代码进行了修改和补充&#xff0c;为什么要修改呢&#xff1f;原因是安卓弟的那个源码版本过于老旧&#xff0c;很多方法已经过…...

联盟链开发 区块链联盟链开发

联盟链&#xff0c;只对于特殊某一人群的组员和不足的第三方&#xff0c;內部特定好几个选号牌的连接点为记帐人&#xff0c;每一个块的转化成由全部的选号牌连接点一同决策&#xff0c;别的连接连接点可以参加买卖&#xff0c;但但是问做账全过程&#xff0c;别的第三方可以根…...

区块链测试(一):测试人员初学区块链

区块链可能会成为未来10年互联应用的一个底层技术&#xff0c;会应用于各行各业的各种项目。比如&#xff1a;商品溯源&#xff0c;既然区块链会易用到各种系统&#xff0c;QA同学当然有必要了解下区块链该怎么测了。 1.1区块链的出现和特点 区块链的特性&#xff1a; 去中心…...

通用电气运输系统加入区块链联盟

点击上方“蓝色字”可关注我们&#xff01;暴走时评&#xff1a;上周四&#xff0c;通用电气运输&#xff08;GE Transportation&#xff09;宣布加入区块链货运联盟&#xff08;Blockchain in Transport Alliance&#xff0c;BiTA&#xff09;&#xff0c;成为该联盟的最新成员…...

区块链技术者联盟群成立

欢迎各位区块链学习者、爱好者、从业者加入&#xff0c;作为一个区块链技术交流&#xff0c;招聘信息汇总的根据地。...

12家新的银行加入区块链联盟R3

现在&#xff0c;有十二家另外的银行加入了由初创公司R3CEV领导的区块链联盟。 新加入该集团的银行包括桑坦德银行、丹麦银行、意大利联合圣保罗银行、法国外贸银行、日本野村证券、北方信托银行、东英金融集团、加拿大丰业银行、三井住友银行、美国合众银行、西太平洋银行和蒙…...

腾讯和华为领导的中国区块链联盟将推出无币区块链

点击上方“蓝色字”可关注我们&#xff01;暴走时评&#xff1a;深圳金融区块链联盟&#xff08;FISCO&#xff09;宣布推出FISCO BCOS&#xff0c;这是一个革命性的无币区块链平台&#xff0c;旨在满足金融业的监管和运营要求。FISCO是中国最大的区块链联盟之一&#xff0c;目…...

俄罗斯最大银行宣布加入区块链联盟…

Sberbank&#xff0c;俄罗斯最大的银行可能在未来将会采用区块链技术。该银行已经计划加入到全球R3国际联盟&#xff0c;并且开发基于区块链的服务。然后&#xff0c;和其他国际银行巨头一样&#xff0c;它们不会使用比特币。 该银行的副主席Lev Khasis对俄罗斯商业日报记者说&…...

区块链和区块链联盟_您可能对区块链有误解。 让我来帮助您修复它们。

区块链和区块链联盟by Syed Fazle Rahman赛义德法兹勒拉曼(Syed Fazle Rahman) 您可能对区块链有误解。 让我来帮助您修复它们。 (You might have misconceptions about Blockchain. Let me help you fix them.) The internet is going crazy about this new buzzword called …...

产业区块链一周动态丨深圳龙华区与腾讯共建产业区块链联盟,新四板试水区块链...

作者&#xff1a;邱祥宇“10.24”会议之后&#xff0c;产业区块链似乎成为了一种政治正确。全国26省将区块链写入政府工作报告&#xff0c;12省发布专项政策19件。一顿操作猛如虎&#xff0c;整个行业拿到融资的公司却只有17家。政策热火朝天&#xff0c;资本望而却步&#xff…...