如何实现监听多个TCP/IP端口并接收各个端口的数据

QQSNOWBOY 2007-03-06 02:44:31
如何实现监听多个TCP/IP端口并接收各个端口的数据
...全文
1201 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ezhuyin 2007-08-29
  • 打赏
  • 举报
回复
简单一些的,一个线程监听一个端口,使用异步BeginAccept接收端口连接。
也可以使用一个线程监听多个端口,使用异步BeginAccept接收端口连接。
如果端口比较多,就要用多线程监听。
大光呢 2007-08-29
  • 打赏
  • 举报
回复
鄙视一下
wheeler 2007-03-06
  • 打赏
  • 举报
回复
应该这样更好

public void Listen(Socket sock)
{
...//The Code to Listening and receive
}

while (true)
{
Socket socket = tcpListener.AcceptSocket();
Thread thd = new Thread(Listen(socket));
thd.Start();
ThreadList.add(thd);
if (??)
//all the thread in ThreadList abort
break;
}
g_vagrant 2007-03-06
  • 打赏
  • 举报
回复
.
wheeler 2007-03-06
  • 打赏
  • 举报
回复
哦 对了

当然啦 如果断口N多的话,你就应该使用线程池啦
自己写个线程的集合也行
wheeler 2007-03-06
  • 打赏
  • 举报
回复
接收到以后你可以去触发一个你的自定义事件来进行一些操作
wheeler 2007-03-06
  • 打赏
  • 举报
回复
public void Listen(int port)
{
...//The Code to Listening
}

public void Fun()
{
Thread thd_1 = new Thread(Listen(8080));
Thread thd_2 = new Thread(Listen(8081));
Thread thd_3 = new Thread(Listen(8082));
thd_1.Start();
thd_2.Start();
thd_3.Start();
//Do Sth...
thd_1.Abort();
thd_2.Abort();
thd_3.Abort();
}

代码是肯定错误的,这只是伪代码而已,希望能帮你提供想法
xxbbww 2007-03-06
  • 打赏
  • 举报
回复
学习,关注
QQSNOWBOY 2007-03-06
  • 打赏
  • 举报
回复
能给我提供一些代码吗
xfkxfk 2007-03-06
  • 打赏
  • 举报
回复
应该使用多线程巴!!

110,534

社区成员

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

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

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