TCP和UDP的异同点知识总结

相同点:TCP和UDP都是传输层的协议

不同点: 1.UDP是面向报文的,发送端发啥,接收端就收啥 TCP是面向流的,肯定能发过去,但是不是一次性都发过去,可能是分批次发的,(就像一车一车拉货),这就需要提前约定怎么就知道一句话发完了,需要自己设定,比如遇到 代表一句话收完了

2.TCP是面向连接的, 必须调用connect,建立连接 UDP是无连接的,, 么有调过connect

3.UDP不可靠,只管发,发了对方收到不收到不管 TCP是可靠的,发了对方能收到,收不到我也知道

但是,可靠性是需要付出成本的,有时候不需要那么可靠,比如视频聊天就可以使用UDP,卡一下也没关系,不影响使用

如何写一个UDP服务器? 1) 创界一个UDP socket (DatagramSocket)

DatagramSocket udpServerSocket=new DatagramSocket(8080);

2)循环 -----------a.等待对方发送UDP报文

udpServerSocket.receive(receivePacket);

---------- b.回复对方一个UDP报文

udpServerSocket.send(sendPacket);

如何写一个UDP客户端? 1)创界一个UDP socket (DatagramSocket)

DatagramSocket udpClientSocket=new DatagramSocket();

2)循环 ---------- a.往Server 端口发送UDP报文

udpClientSocket.send(sendPacket);

-----------b.等待对方回复

udpClientSocket.receive(receivePacket);

如何写一个TCP服务器? 1)创建一个socket并绑定

ServerSocket tcpServerSocket=new ServerSocket(9898);

2)循环 ----------a.等待客户端连接上来

Socket clientSocket=tcpServerSocket.accept();

----------b.把该客户端的处理工作交给线程池去处理

pool.execute(new TalkRunnable(clientSocket);

线程池处理:1.把输入流和输出流都转成合适的字符流

2.等待对方的输入,直到一个特殊字符位置( )

String line=reader.readLine();

3.回复对方消息

out.println(response);
out.flush();
TCP要了解  线程池  和  短连接  这两种处理方式
经验分享 程序员 微信小程序 职场和发展