首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

继续socket有关问题

2012-01-02 
继续socket问题如何在接受到数据的时候触发一个方法,不接受的时候不触发[解决办法]private static ManualR

继续socket问题
如何在接受到数据的时候触发一个方法,不接受的时候不触发

[解决办法]
private static ManualResetEvent RecvDataEvent = new ManualResetEvent(false);
private int recvlength;

private void Accept()
{
Socket sock;
byte[] data = new byte[1024];
recvlength = 0;
// 连接上服务器,这里略
// 开始while
while(true)
{
RecvDataEvent.Reset();
data = new byte[1024];
sock.BeginReceive(data,0,data.Length,SocketFlags.None,new AsyncCallback(EndReceiveCallback),sock); // 异步接收
RecvDataEvent.WaitOne(); // 等待服务器发送
// 接收完毕,写你自己的方法
}
}

private void EndReceiveCallback(IAsyncResult ia)
{
Socket sock = (Socket)ia.StateObjet;
recvlength = sock.EndReceive(ia);
RecvDataEvent.Set();
}

热点排行