UDP与connect()函数
标准的udp客户端开了套接口后,一般使用sendto和recvfrom函数来发数据,实际上,udp发送数据有两种方法的:
socket-->sendto()或recvfrom()
socket-->connect()-->send()或recv().(此时sendto,recvfrom仍可用)
在UDP协议中使用connect()函数的作用仅仅表示确定了另一方的地址,并没有其他的含议。
connect()函数在UDP协议中使用后:
- 我们不必使用recvfrom以获悉数据报的发送者,而改用read,recv或recvmsg,在一个已连接UDP套接口上由内核为输入操作返回的数据 报仅仅是那些来自connect所指定协议地址的数据报。目的地为这个已连接UDP套接口的本地协议地址,发源地却不是该套接口早先connect到的协 议地址的数据报,不会投递到该套接口。这样就限制了一个已连接UDP套接口而且仅能与一个对端交换数据报。
- 在使用多次connect()函数的时候,会改变原来套接字绑定的目的地址和端口号,用新绑定的地址和端口号代替,原有的绑定状态会失效。可以使用这种特性来断开原来的连接。
浙公网安备 33010602011771号