永发信息网

c# TCP一个程序可不可以同时侦听两个端口?

答案:3  悬赏:70  手机版
解决时间 2021-02-06 15:36
  • 提问者网友:酱爆肉
  • 2021-02-05 16:28
listen1 = new TcpListener(IPAddress.Any, 55555);
listen2 = new TcpListener(IPAddress.Any, 55556);
最佳答案
  • 五星知识达人网友:十鸦
  • 2021-02-05 17:40
不要说侦听两个,只要你资源足够,侦听100个都可以的。但是侦听一个端口就要使用一个线程,并在这个线程中响应传入的连接请求,当然还要做一些连接判断或校验,以防止黑客对你进行无限制连接,耗尽你电脑的资源。做网络服务器程序务必要注意安全问题,因为黑客随时会扫描你服务器上开放的端口,然后进行相应的攻击,比如当你接受一个连接请求后,必须要有一个时间间隔来判断该连接是否还处于活动状态,如果该连接是空连接,那么就要及时关闭并释放资源,这样才能及时响应正常的连接。
全部回答
  • 1楼网友:十年萤火照君眠
  • 2021-02-05 19:45
把监听一个端口的事情,在另一个线程在做一次,改变一下端口号。
  • 2楼网友:蕴藏春秋
  • 2021-02-05 18:25
可以的呀~ 以下代码 class Program { static void Main(string[] args) { ThreadPool.QueueUserWorkItem((o) => { TcpListener l1 = new TcpListener(IPAddress.Any, 50000); l1.Start(); Socket accepted1 = l1.AcceptSocket(); }); ThreadPool.QueueUserWorkItem((o) => { TcpListener l2 = new TcpListener(IPAddress.Any, 60000); l2.Start(); Socket accepted2 = l2.AcceptSocket(); }); Console.Read(); } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯