TCP 和 UDP 套接字之间的区别
Difference between TCP and UDP sockets
使用 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是
connectionless 那么怎么连接函数 returns success?
UDP中的connect()
函数(a)告诉UDP将所有数据报发送到哪里,所以可以使用send()
代替sendto()
,(b)充当过滤器在传入数据报上,因此您可以使用 recv()
而不是 recvfrom()
。它在网络上不做任何事情:它只是一个本地操作。它总是 returns 零,因为它不会失败。但是发送到不存在的目标可能会失败...
都记录在案了。
使用 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是 connectionless 那么怎么连接函数 returns success?
UDP中的connect()
函数(a)告诉UDP将所有数据报发送到哪里,所以可以使用send()
代替sendto()
,(b)充当过滤器在传入数据报上,因此您可以使用 recv()
而不是 recvfrom()
。它在网络上不做任何事情:它只是一个本地操作。它总是 returns 零,因为它不会失败。但是发送到不存在的目标可能会失败...
都记录在案了。