我可以在同一个套接字上发送和接收UDP数据报,我用于TCP通信。在我的应用程序中存在多媒体通信,我必须使用UDP进行通信。如果我创建一个新套接字,它会抛出属性的异常 LingerState 和 NoDelay 。当我将旧套接字实例分配给其他Socket变量时,它不允许我更改属性,因为大多数属性都是只读的。必须在TCP连接区域中发送数据。
* 代码*
Socket SendingSocket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp); IPEndPoint Endp =新的IPEndPoint(IPAddress.Parse(“192.168.3.233”),端口);
SendingSocket.Bind(ENDP);
while(SendingSocket.Connected)
{
string Message =“测试通过UDP发送的消息”; ASCIIEncoding Encode = new ASCIIEncoding();
byte [] MessageBytes = Encode.GetBytes(Message);
SendingSocket.SendTo(MessageBytes,0,MessageBytes.Length,SocketFlags.None,Endp); }“
答案 0 :(得分:1)
很难从该代码片段中分辨出来,但可能您不需要SendingSocket.Bind(Endp)
,因为您的SendingSocket.SendTo
也包含IP端点。也可以尝试简单地
SendingSocket.SendTo(MessageBytes, Endp);
答案 1 :(得分:0)
没有。您不能对TCP和UDP使用相同的套接字。套接字只绑定一个协议。