【发布时间】:2016-08-15 21:27:22
【问题描述】:
使用 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 是 无连接那么connect函数如何返回成功?
【问题讨论】:
-
为什么会有 C 和 C++ 标签?
-
您是否尝试过在 Google 中输入"difference between TCP and UDP",然后阅读一些结果?
-
“到目前为止,我认为我们只能使用连接函数为 tcp 套接字创建连接。” 嗯,那是因为 TCP 协议需要这样做。 UDP 协议是无连接的。
-
@πάνταῥεῖ 但是即使对于 udp 套接字,connect 函数也会返回 0(成功)。