周所周知,TCP是面向连接的,UDP是非连接的。
但是何谓连接和非连接?
连接就是说传输数据得先建立连接才能传输数据,这有道关卡——要先建立连接通道!因为某种原因一旦一方断开,那么另一方感知到后就会销毁资源。等到恢复正常了,双方想要再传输数据,就又得重新建立连接才能传输。也就是说每次断开连接后,路不通了。得重新修建好路才能通。比如TCP的三次握手。
但是非连接,比如UDP,双方可以随时断开连接,但是一旦另一方上线就又能收到对方的数据了。比如客户端因为某些原因(比如机器重启)断开了,服务端依然故我地等待接受数据,不受影响。等到客户端又创建起来了,那么可以接着和服务端沟通。同样,服务端断开了,也不影响客户端,客户端依然可以不停发数据给客户端,等服务端又好了,又能沟通了。非连接就像qq,双方任意一方离线都不不会说导致对方qq进程退出,双方都在线了又都能收到消息了。
注意:UDP也可以设置成连接的UDP,只要bind下端口就行了。