你如何根据tcp制作可靠的udp协议?

时间:2012-05-30 18:11:50

标签: c++ sockets tcp udp

我正在尝试编写一个可靠的udp协议,但是当服务器将连接交给套接字时我很困惑。 在java中,tcp服务器侦听特定端口然后在accept上,返回一个套接字。

Socket clientSocket = server.accept();

在syn位交换后或者状态为Established时,accept方法是否返回套接字?

3 个答案:

答案 0 :(得分:2)

当accept方法返回套接字时,套接字处于连接状态,并且在accept方法返回套接字之前交换SYN / SYN-ACK数据包。实际上SYN包不是在accept方法中交换的。这些数据包在驱动程序层(TCP堆栈)上交换。

如果您正在尝试编写可靠的UDP,那么我强烈建议您查看UDT项目源代码。它是用C ++编写的,但您可以从该项目中获取大量指导。 UDT项目编写得非常好,高效且非常稳定。

http://udt.sourceforge.net/

答案 1 :(得分:0)

Java套接字是基于BSD API建模的,因此accept返回的套接字被认为是完全连接的。

答案 2 :(得分:0)

首先回答这个问题 - 当accept返回时,套接字已连接。

其次,做这样的事情的最好方法是使用ØMQ,因为它太棒了,非常适合你。

最后从这个article开始,它的工作原理如下:

用户数据报协议(UDP)是Internet协议套件的核心成员之一,Internet协议套件是用于Internet的一组网络协议。利用UDP,计算机应用程序可以将消息(在这种情况下称为数据报)发送到因特网协议(IP)网络上的其他主机,而无需事先通信来建立特殊传输信道或数据路径。

enter image description here

相关问题