UDP调用connect

   大家都知道,在建立TCP连接时需要connect,但UDP调用connect又是什么情况。

    在普通的UDP中,我们都是用sendto和recvfrom来收发消息的,这两个函数都有一个sockaddr_in参数,参数里面存放的就是目的端的ip和端口,而TCP的send和recv就不需要这些参数,为什么呢?稍微一想我们就知道,TCP在发送数据的时候已经建立了连接,所以不需要目的端的ip和端口呢。但是对于UDP而言,它没有建立连接,所以在发送的时候需要附加ip和端口。那么我们每次都要附加目的ip和端口,是不是很繁琐呢?好,现在有种解决方法——connect,需要注意的是UDP调用connect的作用和TCP完全不一样,UDP调用connect只是为了让内核把目的ip和端口记录下来。所以说当UDP调用connect时会提高发送效率,因为在普通情况下都是 建立连结->发送报文->断开连结->建立连结->发送报文->断开连结 这样循环,但是在用了connect之后就会变成 建立连结->发送报文->发送报文。。。

如此一来,在UDP中多次调用connect都是可以的

你可能感兴趣的:(UDP调用connect)