网络--Internet
2021-06-06 07:12
标签:输入 封装 客户端 标记 server 建立连接 intern 相同 取数 网络通信三要素: Socket: 使用UDP实现数据的发送 使用TCP实现数据的发送: /* 这句话成功执行说明成功创建客户端 */ 使用TCP实现数据的接收: 得到客户端对象,和客户端使用相同的流 ServerSocket server = new ServerSocket(55555); */ shutDownOutput():添加结束标记 网络--Internet 标签:输入 封装 客户端 标记 server 建立连接 intern 相同 取数 原文地址:http://www.cnblogs.com/roxy/p/7339830.html
IP
协议:
TCP:
建立连接,发送速度慢
三次握手协议
UDP:
不需要建立连接,发送速度快
安全性低
端口 0--65535
负责数据的发送和接收
1 创建Socket端点实现数据的发送
DatagramSocket:
基于UDP,发送数据包
2 明确发送的数据
3 把数据封装成数据报包
DatagramPacket:
UDP数据包,指明了发送的数据,接收方的IP,接收方的端口
4 使用Socket的发送功能发送数据
内部使用输出流将数据写出去,所以有IOException
使用UDP实现数据的接收:
1 创建Socket端点实现数据的接收
需要指定监听的端口
2 创建一个空的数据报包来接收数据
3使用Soclet的接收功能来接收
4 从数据报包获取数据
客户端
1 创建Socket端点,负责数据发送,同时需要和服务端连接
2 发送数据,就是输出,使用输出流
Socket:只能作为客户端(发送)
Scoket socket = new Scoket(InetAddress.getByName(""), 55555);
同时说明和服务器端连接成功
也就是和服务器端建立了一条通道
这条通道就是这个Socket流(客户端对象),Socket流中既有字节输入流,也有字节输出流
服务端
ServerSocket:
1 创建Scoket对象,同时监听端口
2 得到客户端对象,和客户端使用相同的流
3 接收数据,就是读取数据,使用输入流
/*
服务端如何区分客户端?
Socket scoket = server.accpet();