C#中UdpClient无法接收数据
用C#写了个UDP程序,但是发现接收的时候一直被阻塞,我用的是同步接收,简单的用了一个while(TRUE)循环接收数据。但是在RecvClient.Receive(ref RemoteEndPoint)这个地方就不动了?下面贴上代码
请问是我还有哪些地方没有考虑到吗?
public void RecieveData()
{
IPAddress locip = IPAddress.Parse(LocalIp);
//IPEndPoint locEndPort = new IPEndPoint(locip, LocalPort);
IPEndPoint locEndPort = new IPEndPoint(locip, SendToPort);
if (RecvClient == null)
{
RecvClient = new UdpClient(locEndPort);
RecvClient.Client.ReceiveTimeout = 60000;
RecvClient.Connect(IPAddress.Parse(SendToIp), SendToPort);
}
Thread RecvThread = new Thread(ReceiveMessage);
RecvThread.Start();
}private void ReceiveMessage()
{
IPEndPoint RemoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
//RemoteEndPoint = new IPEndPoint(IPAddress.Parse(LocalIp), SendToPort);
while (true)
{
try
{
//关闭UDPRecvClient会引发异常
byte[] receiveBytes = RecvClient.Receive(ref RemoteEndPoint);
string msg = Encoding.Unicode.GetString(receiveBytes);
string ShowMsg = RemoteEndPoint.ToString() + ":" + msg;
//消息容器添加加锁,防止容器信息出错
//lock (lockObj)
//{
// listMsg.Add(ShowMsg);
//}
if (msg == SendMsgs)
{
IsOperateSuccess = true;
}
}
catch
{
break;
}
}
}请问是我还有哪些地方没有考虑到吗?
...全文
相关推荐
Networking:C# 网络库。 易于管理的 TcpClient、TcpSever、UdpClient、UdpServer
联网 C# 网络库。 易于管理的 TcpClient、TcpSever、UdpClient、UdpServer
C#使用UdpClient发送和接收UDP数据示例
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.W...
UDP.rar_CSharp udp_UDP CSharp _UDP代码的实现
源码实现了简单的功能,可以学学看源码实现了简单的功能,可以学学看
UDP通信协议测试
c#编写的udp通信测试demo。
利用C_实现基于UDP协议的点对点即时通信
利用C_实现基于UDP协议的点对点即时通信


