与TCP套接字(sock_stream)和UDP套接字(数据报)建立连接有什么区别。到目前为止,我认为我们可以只为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是无连接的,那么连接函数如何返回成功呢?
发布于 2016-04-22 10:55:09
UDP (a)中的connect()函数告诉UDP在哪里发送所有数据报,因此可以使用send()而不是sendto(),(b)充当传入数据报的筛选器,因此可以使用recv()而不是recvfrom()。它不会在网络上做任何事情:它只是一个本地操作。它总是返回零,因为它不能失败。然而,发送到一个不存在的目标可能失败.
都被记录在案了。
https://stackoverflow.com/questions/36790595
复制相似问题