sktListener 是socket类型
AsyncCallback aCallback = new AsyncCallback(AcceptCallback);
其中AcceptCallBack如下:
public static void AcceptCallback(IAsyncResult ar)
{
Console.WriteLine("AcceptCallback Thread ID:" +AppDomain.GetCurrentThreadId()); // retrieved the socket
Socket listener = (Socket)ar.AsyncState;
// new socket
Socket handler = listener.EndAccept(ar);//sktListener就不管以后的处理?
handler.BeginReceive(buffer,0, buffer.Length, 0, new AsyncCallback(Receive),
handler);
}
问:
当执行sktListener.BeginAccept( aCallback,sktListener);到socket handler =....
这一步的时候就将处理交给handler,而sktListener就回去继续侦听?
如果还有连接传入的话就再次调用如上过程?也就是自己不用写循环了?我编码测试过,两个客户端是可以连上服务器,但服务器的Console.WriteLine(...)所显
示的信息却只有一遍,这是为什么啊?
AsyncCallback aCallback = new AsyncCallback(AcceptCallback);
其中AcceptCallBack如下:
public static void AcceptCallback(IAsyncResult ar)
{
Console.WriteLine("AcceptCallback Thread ID:" +AppDomain.GetCurrentThreadId()); // retrieved the socket
Socket listener = (Socket)ar.AsyncState;
// new socket
Socket handler = listener.EndAccept(ar);//sktListener就不管以后的处理?
handler.BeginReceive(buffer,0, buffer.Length, 0, new AsyncCallback(Receive),
handler);
}
问:
当执行sktListener.BeginAccept( aCallback,sktListener);到socket handler =....
这一步的时候就将处理交给handler,而sktListener就回去继续侦听?
如果还有连接传入的话就再次调用如上过程?也就是自己不用写循环了?我编码测试过,两个客户端是可以连上服务器,但服务器的Console.WriteLine(...)所显
示的信息却只有一遍,这是为什么啊?
解决方案 »
- datagridview如何判断是哪个单元格修改?
- 如何获取硬盘的总大小,不是剩余空间
- 服务器验证客户端密码,急急!!! 在线
- 关于服务调用程序的问题,希望高手帮忙
- C# winform绘控件
- 关于C语言For循环的一个问题~!
- 狠下心,学习SQLServer.数据库,大家谁能给 鄙人 推荐几本书...
- 关于c/s结构的问题
- 怎么使用C#获取远程http://www.9630000.com/temp.txt,并将此文件获取并保存于本地盘当前文件夹下的temp.txt中。急用!!!谢谢!!!
- combobox总是选中下拉表中的第一条,怎么让他不选中任何项?
- socket异步编程一问
- 郁闷,散200分
_svrSock.BeginAccept(new AsyncCallback( AcceptConn ), _svrSock);
你在这个函数中,还要加上面这一句,继续接收连接,否则它只能接收一个连接就停了。
具体看:http://dev.csdn.net/develop/article/65/65798.shtm