我刚开始学习套接字编程,我遇到了一个我以前见过的概念,但让我很困惑。
看起来,UDP连接是“无连接、无连接”的连接。
“无连接”和“无连接”不是多余的吗?
那么有四种类型的连接吗?
即
最后,一个“无连接、无连接”的连接函数是如何实现的?这不是自相矛盾吗?LOL
发布于 2012-03-13 10:37:30
事实上,没有UDP连接这样的东西。基本上,UDP是一种火灾和遗忘协议,您只需向某台机器发送数据包(不需要首先建立连接),并希望另一台机器能够捡起它们(如果它们完全成功的话)。
当您建立“套接字连接”时,没有什么神奇的事情发生,即您和您的远程客户端之间的连线不会改变颜色或其他东西。在连接过程中,双方都同意使用给定的协议在因特网上可靠地接收和发送数据。它绝对不需要连接任何东西来通过互联网发送和接收东西,但是连接允许您保证完整性和秩序(和其他一些东西),因为这两台机器都同意遵循某种方法。
我不知道“没有连接,没有连接”的套接字。告诉您这一点的人可能只是想强调UDP的不相关方面。
发布于 2012-03-13 14:03:37
从技术上讲,您可以在UDP套接字上调用connect()
。在这种情况下,套接字会记住对等地址,因此可以使用send()
或write()
系统而不是sendto()
发送数据报。此外,它使套接字只从该对等点接收数据报,而丢弃来自其他对等点的数据报。
这可能就是所谓的“无连接,连接”套接字,这意味着在UDP套接字上调用了connect()
调用。
发布于 2012-03-13 10:36:07
使用UDP套接字,您可以像使用TCP套接字一样连接到服务器。但是,您也可以使用sendto
函数直接将数据包发送到服务器,而无需连接。
https://stackoverflow.com/questions/9682266
复制相似问题