当前位置:编程学习 > C#/ASP.NET >>

求教一段C#UDP协议异步接收数据的代码

代码如下:
while(true)
{
result = asyncSock.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None,
ref endPoint, /*new AsyncCallback(TestFrom)*/null, asyncSock);
//if(result.IsCompleted)
// Sign
int receiveBytes = ((Socket)result.AsyncState).EndReceiveFrom(result, ref endPoint);
//if(receiveBytes!=0)
Console.Write("接收了: 个字节: " + Encoding.Unicode.GetString(buffer,0,receiveBytes));
string strContent = Console.ReadLine();
}

上面的代码是在Main函数中;我把Sign下面的那行EndReceiveFrom的代码去掉,则循环不中断,一直会有输出,这个跟我理解的异步是一致的。但是不删掉EndReceiveFrom则会在那一行阻塞起来。我有如下问题:
一、以Begin和End开头的通信函数不都是异步的吗?为什么有EndRecieveFrom函数会将主程序阻塞?
二、没有EndReceiveFrom也可以接收数据,那么它的作用是什么?
三、是不是一定要有EndReceiveFrom才能判断某一次接收了多少字节?直接在BeginReceiveFrom中不可以吗? 异步 socket UDP C# 阻塞 --------------------编程问答-------------------- 二、的意思是只有BeginReceiveFrom函数也可以接收数据。。。 --------------------编程问答-------------------- 四、我看大多数异步函数都有回调函数,那它一般是做什么用的呢?我上面并没有用到回调函数好像也可以通信? --------------------编程问答-------------------- 求大神帮助啊
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,