在使用相同套接字的相同应用程序中使用不同的协议

本文关键字:协议 套接字 应用程序 | 更新日期: 2023-09-27 18:18:35

我可以在同一个套接字上发送和接收UDP数据报,我使用TCP通信。在我的应用程序中存在多媒体通信,我必须使用UDP进行通信。如果我创建一个新的套接字,它抛出了一个异常的属性LingerStateNoDelay。当我将旧套接字实例分配给其他套接字变量时,它不允许我更改属性,因为大多数属性都是只读的。我必须在TCP连接区域发送数据。

代码* *

套接字SendingSocket =新的套接字(AddressFamily。互联网络,SocketType。Dgram ProtocolType.Udp);

IPAddress.Parse("192.168.3.233"), port);

SendingSocket.Bind (Endp);

, (SendingSocket.Connected)
{字符串消息="测试通过UDP发送消息";Encode = new ASCIIEncoding();byte[] MessageBytes = Encode.GetBytes(Message);SendingSocket。SendTo(MessageBytes, 0, MessageBytes.)长度,SocketFlags。没有,Endp);} '

在使用相同套接字的相同应用程序中使用不同的协议

很难从代码片段中看出,但可能您不需要SendingSocket.Bind(Endp),因为您的SendingSocket.SendTo也包括IP端点。也可以试试

SendingSocket.SendTo(MessageBytes, Endp);

No。TCP和UDP不能同时使用同一个套接字。一个套接字只能绑定到一个协议