如何实现可靠的 UDP 协议
本文关键字:UDP 协议 何实现 实现 | 更新日期: 2023-09-27 18:34:46
我知道如何发送和接收UDP和TCP数据包,如何实现发送可靠UDP数据包的方法?我只是要求一个逻辑,因为我不知道这是如何工作的。提前谢谢。
这是我以前公司使用的一些旧代码
这背后还有很多其他方法,太多了,无法在这里真正分享,但您希望使用确认和未确认消息来显示通信已发送和接收。
public void InitialiseVenemaComms()
{
string initMessage = null;
DebugInfo(1, "*** InitialiseVenemaComms");
initMessage = "002" + StationPrms.StationId + "ACK";
try
{
System.Net.Sockets.UdpClient udpClient = new System.Net.Sockets.UdpClient(Convert.ToInt32(StationPrms.Venema.LocalPort));
byte[] messageBytes = System.Text.Encoding.ASCII.GetBytes(initMessage);
udpClient.Connect(StationPrms.Venema.DNS, Convert.ToInt32(StationPrms.Venema.RemotePort));
DebugInfo(1, string.Format("*** Sending init message '{0}' from port '{1}' to ip '{2}' on port '{3}'", initMessage, StationPrms.Venema.LocalPort, StationPrms.Venema.DNS, StationPrms.Venema.RemotePort));
udpClient.Send(messageBytes, messageBytes.Length);
udpClient.Close();
DebugInfo(1, "*** Init Message Sent");
}
catch (Exception ex)
{
DebugInfo(2, "Error: " + ex.Message);
CssError("Error initalising Venema comms: " + ex.Message);
}
}
但是您最好根据我的评论发送TCPIP。