Java学习日记 20210413 网络编程

网络编程概述

		*在通信协议下不同计算机上运行的程序,可以进行数据传输。


--网络编程三要素
		IP地址 :设备在网络中的地址,是唯一的标识。
					ipv4:点分十进制表示  
					ipv6:冒分十六进制表示
		端口:应用程序在设备中唯一的标识。
					端口号:用两个字节表示的整数,它的取值范围是0~65535.
		协议:数据在网络中传输的规则,常见的协议有UDP和TCP协议。
					UDP: 用户数据报协议。
								udp是面向无连接通讯协议
								速度快,有大小限制,一次最多发送64k,数据不安全,易丢失数据。
					TCP: 传输控制协议
								TCP协议是面向连接的通讯协议。
								速度慢,没有大小限制,数据安全。

InetAddress类
static InetAddress getByName(String host) 确定主机名称的IP地址,host可以是机器名称,也可以是IP地址
String getHostName() 获取此IP地址的主机名。
String getHoseAddress() 返回文本显示中的IP地址字符串

UDP

	--发送端 :   1. 创建 DatagramSocket对象;
						2.创建DatagramPacket对象
						3.DatagramSocket对象 . send(DatagramPacket对象)。
						4.DatagramSocket对象.close();
	--接收端 :  1.创建DatagramSocket对象  构造参数填写端口。
						2.创建DatagramPacket对象
						3.DatagramSocket对象 . receive(DatagramPacket对象);
						4.DatagramPacket对象.getData();//获取数据
						5.DatagramSocket对象.close();
	要先运行接收端,在运行发送端。
	如果接收端在启动之后没有接收到数据,那么会死等(阻塞)
	在接受数据的时候,需要调用一下getLength方法,表示接收到了多少字节。

	UDP的三种通讯方式 : 1.单播
											2.组播
											3.广播  广播地址 255.255.255.255

TCP

	TCP是一种可靠的网络协议,他在通信的两端各建一个Socket对象

	发送数据的步骤: 1.创建客户端的Socket对象(Socket)与指定的服务器连接
														Socket(String host,int port) 地址 和  端口
								  2.获取输出流,写数据
								  						OutPutStreamOutPutStream();
								  						。wirte();
								  3. 释放资源
								  						void close();
	

	接收数据的步骤: 1. 创建服务器端的Socket对象(ServerSocket)
											ServerSocket(int port);   端口
								  2.监听客户端连接,返回一个Socket对象
								  			Socket accept();
								  3.获取输入流,读数据,并把数据显示在控制台
								  			InputStream getInputStream();
								  4.释放资源。
								  			void close();

			1.accept()方法是阻塞的,作用是等待客户端的连接
			2.客户端创建对象并连接服务器,此时是通过三次握手协议保证跟服务器之间连接。
			3.针对客户端来说是输出流,针对服务器来讲,是输入流。
			4.read()方法也是阻塞的。
			5.在关流的时候,还多了一个往服务器写结束标记的动作。
			6.结束时候会有四次挥手协议保证连接终止。

UUID类
UUID是一个表示不可变的通用唯一标识符的类。
UUID.RandomUUID(); 随机生成名字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡抹宜人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值