UDP使用connect函数的时候并不想TCP 那样使用三次握手,其作用如下:
1、完成五元组绑定,后续只能对指定的目的端口和目的IP接收和发送数据,所以调用connect函数之后,UDP不能使用recvfrom和sendto函数,只能使用read和write函数。
2、对接收到异步网络错误。比如发送到错误的或者尚未打开的端口时候,会返回IMCP 不可到达的错误。如果UDP不connect,因为UDP可以发送数据到多个目的IP,
所以内核不返回这个错误给UDP,即时返回给UDP,发送方也不知道这个错误是哪个目的IP返回来的。如果UDP已进行了connect,内核就可以根据五元组信息返回异步错误给UDP。
阅读(3317) | 评论(0) | 转发(0) |