C#多个套接字在不同线程上使用相同端口

3
我有多个线程使用多个套接字,但都指向一个端口。这样会起作用吗?我看到一些帖子说多个应用程序不能使用相同的端口,但我不确定它是否直接回答了这个问题。
代码示例:
       static IPEndPoint b = new IPEndPoint(IPADRESS, PORT);
       static Thread listenThread = new Thread(listen);
       static Thread sendThread = new Thread(send);

       static void listen(){
          Socket socket = new Socket;
            socket.bind(b);
          while(exit == false){

          Socket.listen(10);
           //handle Data

                }

           static void send(){
          Socket socket = new Socket;
            socket.bind(b);
          while(exit == false){

          Socket.send(msg)
                }

这里有一个非常好的答案,总结了所有内容:https://dev59.com/q3RB5IYBdhLWcg3wn4bb#724022 - Larry
1个回答

1
如果您在同一端口上只有一个监听线程和一个发送线程,那么就没有问题。但如果有多个,则需要创建一个线程来监听该端口并将接收到的内容推送到队列中。其他线程应从队列中读取。

最初你说套接字可以在不同的线程上同时使用相同的端口。 - silentcallz
只有一个线程可以监听端口,但是另一个线程可以通过相同的端口发送。 - Riad Baghbanli
所以有2个线程、2个套接字、1个读取和1个写入,但所有的都共享同一个端口。 - silentcallz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接