UDP与connect()函数

标准的udp客户端开了套接口后,一般使用sendto和recvfrom函数来发数据,实际上,udp发送数据有两种方法的:
socket-->sendto()或recvfrom() 
socket-->connect()-->send()或recv().(此时sendto,recvfrom仍可用)

在UDP协议中使用connect()函数的作用仅仅表示确定了另一方的地址,并没有其他的含议。

connect()函数在UDP协议中使用后:

  1. 我们不必使用recvfrom以获悉数据报的发送者,而改用read,recv或recvmsg,在一个已连接UDP套接口上由内核为输入操作返回的数据 报仅仅是那些来自connect所指定协议地址的数据报。目的地为这个已连接UDP套接口的本地协议地址,发源地却不是该套接口早先connect到的协 议地址的数据报,不会投递到该套接口。这样就限制了一个已连接UDP套接口而且仅能与一个对端交换数据报。
  2. 在使用多次connect()函数的时候,会改变原来套接字绑定的目的地址和端口号,用新绑定的地址和端口号代替,原有的绑定状态会失效。可以使用这种特性来断开原来的连接。
posted on 2013-10-27 22:17  码哥@杭州  阅读(233)  评论(0)    收藏  举报