TCP和UDP套接字之间的区别

时间:2016-04-22 09:54:40

标签: sockets tcp udp

与TCP套接字(sock_stream)和UDP套接字(数据报)建立连接有什么区别。到目前为止,我认为喜欢 我们可以使用connect函数仅为TCP套接字创建连接。但是,可以与UDP套接字建立连接。 到目前为止,我还不知道如何与UDP套接字建立连接。这两者有什么区别?

        int tcpsock = socket(AF_INET, SOCK_STREAM, 0);
        connect(tcpsock,(struct sockaddr*)&sa,sizeof(sa));

        int udpsock = socket(AF_INET, SOCK_DGRAM, 0);
        connect(udpsock,(struct sockaddr*)&sa,sizeof(sa));  // How ?

UDP是无连接的。所以,如果我们使用UDP如何建立类似于TCP的连接?

我已经知道TCP和UDP之间的区别。我怀疑是,UDP是 无连接,那么connect函数如何返回成功?

1 个答案:

答案 0 :(得分:1)

UDP(a)中的connect()函数告诉UDP在哪里发送所有数据报,因此您可以使用send()而不是sendto(),并且(b)充当传入的过滤器数据报,因此您可以使用recv()代替recvfrom()。它在网络上没有任何作用:它只是一个本地操作。它总是返回零,因为它不会失败。但是,发送到不存在的目标可能会失败...

全部记录在案。