TCP通信与UDP通信的区别
UDP通信:
UDP通信是一种不安全的且非连接的方式,但是通信速度快。每次发送端发送一个数据包,接受端接受到一个数据包。
Client端与Server端都使用DatagramSocket+DatagramPacket接受与发送数据。
Client端好比是一个菜鸟驿站,DatagramSocket就好比是一个快递员,DatagramPacket就是工人的这个麻袋,Client端要发送数据就必须往这个麻袋上面贴上快递单其中包括:发送的物品,发送物品的重量,发送方地址(发送方IP地址),接收方地址(接受方端口)。
Server端同样也是一个菜鸟驿站,不过当他接受包裹(DatagramPacket)的时候,就只需要派出自己的快递员(DatagramSocket)就可以接受到这个包裹了。不需要提供发送发与接受方的地址了,只管领就完事了,当然,为了放在快递员领错或者搬不动这个快递,还需要额外申请一个篮子byte[] bys=new byte[1024]。
TCP通信
TCP通信是一种点对点的、有连接的通信方式。所以就不需要先打包数据了,但是要先建立一个数据发送的通道。
Client端通过Socket向一个端口建立一个大的通道,但是往这个通道发送数据的时候也不能直接发送,因为你发出去的数据万一和发过来的数据撞在一起了呢是吧?
所以,在一个大通道里面,还要设置一个小通道用于发送数据(OutputStream),另外一个小通道用于接收数据(InputStream)。
Server端也一样需要建立向一个端口的大通道,与Client不同的地方在于,还需要对这个通道进行侦听,因为Server端一般都会有多个通道,不像client只管自己发送,或者只管接受他发送的那个服务器端的回复,所以server需要监听着通道,有数据发送过来就随时接收。