Day21 : TCP(一对一聊天、群聊、互联五子棋大战)、UDP一对一聊天、Http(互联网下载图片、查询快递)

本文详细介绍了TCP的三次握手建立连接及释放连接过程,并分别讲解了TCP一对一聊天、群聊以及实现互联五子棋大战的场景。同时,探讨了UDP一对一聊天的实现,以及使用HTTP进行互联网图片下载和快递查询的操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#TCP

通过三次握手建立连接

Step 1:客户主机发送TCP SYN数据段到服务器(SYN=1,客户机制定起始序号seq=x)

Step 2:服务器主机收到SYN,用SYN+ACK数据段响应(SYN=1,ACK=1,seq=y;ack=x+1)

Step 3:客户收到SYN+ACK,用ACK数据段响应,可以包含数据(SYN=0,ACK=1,seq=x+1,ack=y+1)  (当SYN=1,ACK=0表明这是一个连接请求报文,对方若同意建立连接,则在响应报文中使用SYN=1,ACK=1。SYN=1表示这是一个连接请求或连接接收报文)

释放连接过程

Step 1:客户结束发送TCP FIN控制数据段到服务器(FIN=1,seq=u)

Step 2:服务器收到FIN,用ACK响应。(ACK=1,seq=v,ack=u+1)

Step 3:服务器发送FIN(FIN=1,ACK=1,seq=w,ack=u+1)

Step 4:客户收到FIN,发送ACK确认关闭(ACK=1,seq=u+1,ack=w+1)

###1.TCP一对一聊天

实现客户端与服务器的交互。通过多线程实现端的Receive和Send独立

客户端

public class Cilent {

	public static void main(String[] args) throws UnknownHostException, IOException {
		//创建连接
		Socket socket = new Socket("127.0.0.1",19999);
		//创建输入输出流
		Scanner scan = new Scanner(System.in);
		PrintStream ps = new PrintStream(socket.getOutputStream());
		BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		new Receive(socket).start();
		while(true) {
			//向服务器发送消息
			ps.println("客户端:"+scan.next());
	
		}
		
	}
}

服务器

public class Server {

	public static void main(String[] args) throws IOException {
		//创建连接
		ServerSocket server = new ServerSocket(19999);
		Socket socket = server.accept();
		
		//创建流
		Scanner scan = new S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值