我想编个多线程的窗口,、
能监听多路,类成员:socket client;
窗口构造函数:。。
socket network;
.....
network.Bind(ip);
network.listen(5);
network.BeginAccept(new AdyncCallback(Accept),network);void Accept(IAsyncResult iar)
{
Sock s=(socket)iar.AsyncState;
client=s.EndAccept(iar);//这里我觉得socket client必须定义为类成员,因为别的函数(ReceiverData)还要访问。
Thread receiver=new Thread(new ThreadStart(ReceiverData));//但是开始一个线程后,如果再接入别的连接,
//执行endAccept()之后,client不就指向别的连接了吗,那这个线程的client就不起作用了。这该怎么办啊?如果把
//socket client 定义在Accept()内,那么他它又无法传递给线程函数。
receiver.Start();
} 我这样理解有问题吗?求一解决方法
能监听多路,类成员:socket client;
窗口构造函数:。。
socket network;
.....
network.Bind(ip);
network.listen(5);
network.BeginAccept(new AdyncCallback(Accept),network);void Accept(IAsyncResult iar)
{
Sock s=(socket)iar.AsyncState;
client=s.EndAccept(iar);//这里我觉得socket client必须定义为类成员,因为别的函数(ReceiverData)还要访问。
Thread receiver=new Thread(new ThreadStart(ReceiverData));//但是开始一个线程后,如果再接入别的连接,
//执行endAccept()之后,client不就指向别的连接了吗,那这个线程的client就不起作用了。这该怎么办啊?如果把
//socket client 定义在Accept()内,那么他它又无法传递给线程函数。
receiver.Start();
} 我这样理解有问题吗?求一解决方法
解决方案 »
- (C#)长连接是如何实现的,心跳包又是如何运作的?
- 求SharpDevelop的代码格式化快捷键,以及Visual studio代码格式化快捷键
- C# 删除文件夹出错——目录不是空的
- 应用程序生成时,debug下面如何生成我的image文件夹
- treeview 选中一个节点如何判断下面是否还有节点了
- 给个c#打包安装教程?
- 调用WCF服务时出错:An error occurred while receiving the HTTP response to http://localhost:8080/WebService.
- 有alert的重定向?
- 询问遍历指定目录中子目录和文件问题
- 升星散分,另有一问题请教大家。。。。。 http://community.csdn.net/Expert/topic/3855/3855396.xml?temp=.9206201
- 自定义控件的小问题
- 新手提问:使用ICSharpCode.SharpZipLib.dll的问题
你可以将服务端的Socket对象封装成一个类进行处理。
Socket中接收连接可以使用异步处理,当接收并处理一个连接时EndAccept用于停止接收其他的连接请求,处理完当前的后,继续接收连接请求即可。