c# udp的问题
在编码过程中 发现这一段代码有错误/// </summary>
private void DoListen()
{
bytData = new byte[intMaxDataSize];
epRemote = (EndPoint)(new IPEndPoint(IPAddress.Any, 8000));
//可能会抛出一个异常
while (true)
{
if (LocalSocket.Poll(5000, SelectMode.SelectRead))
{//每5ms查询一下网络,如果有可读数据就接收
LocalSocket.BeginReceiveFrom(bytData, 0, bytData.Length, SocketFlags.None, ref epRemote, new AsyncCallback(ReceiveData), null);
}
}
}
/// <summary>
/// 接收数据
/// </summary>
/// <param name="iar"></param>
private void ReceiveData(IAsyncResult iar)
{
int intRecv = 0;
try
{
intRecv = LocalSocket.EndReceiveFrom(iar, ref epRemote);
}
catch
{
throw new Exception();
}
if (intRecv > 0)
{
byte[] bytReceivedData = new byte[intRecv];
Buffer.BlockCopy(bytData, 0, bytReceivedData, 0, intRecv);
voicecapture1.GetVoiceData(intRecv, bytReceivedData);//调用声音模块中的GetVoiceData来从字节数组中获取声音并播放
}
}
我做的是p2p语音通讯 不知道为什么这里会出错 LocalSocket.BeginReceiveFrom(bytData, 0, bytData.Length, SocketFlags.None, ref epRemote, new AsyncCallback(ReceiveData), null);
远程计算机主机关闭连接。不懂怎么回事。两边都出错 。两边都没有关闭连接啊,为什么说远程关闭连接 --------------------编程问答-------------------- 但是如果接收端没有读完数据就提前关闭了连接,发送端就会异常。查看接收端的缓冲大小 --------------------编程问答-------------------- 这个解决了类似udp断开问题:
http://topic.csdn.net/u/20080119/15/6e934e42-2378-491d-bf90-4affa7d7c0ee.html
补充:.NET技术 , C#