socket 服务如何让多客户连接

feng199 2008-12-23 10:48:44
一个socket的服务端,如何让多个socket的客户端连接,是不是要使用线程?
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng199 2008-12-23
  • 打赏
  • 举报
回复
看了一些源码,都是没有使用线程的,有没有可参考资料,能否指点一下?
gogogo 2008-12-23
  • 打赏
  • 举报
回复
是的,要用多线程,一个固定端口号的socket侦听,侦听到一个客户端连接进来,就建立一个线程和一个新的socket同客户端交流,这个侦听的socket继续侦听等待下一个客户端连接。
bbbbbb888888 2008-12-23
  • 打赏
  • 举报
回复
看socket异步的msdn例子,
xdf_hubei 2008-12-23
  • 打赏
  • 举报
回复
socket sck = new socket(addressfamily.internet,sockettype.stream,protocaltype.tcp);
ipendpoint = new ipendpoint(ipaddress.any,2000);
sck.bind(sck);
sck.listen();
..
.
manuresetevent event = new manuresetevent(false):

while(true)
{
event.reset();
sck.beginaccept(new asynccallback(connectCallback),sck);
event.waitone();
}

...
void connectCallback(iasynccallback ia)
{
socket mainsck = ia.state as socket;
socket worksck = mainsck.Endaccept(ia);
event.set();
//start session here
}
bulong0721 2008-12-23
  • 打赏
  • 举报
回复
            TcpListener listener = new TcpListener(2000);
listener.Start();
listener.BeginAcceptSocket(...);
...

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧