【问题标题】:C# multiple sockets using the same port on separate threadsC# 多个套接字在不同的线程上使用相同的端口
【发布时间】:2016-03-31 20:05:41
【问题描述】:

我有多个线程使用多个套接字,但都指向一个端口。它会起作用吗?我看到一些线程说多个应用程序不能使用相同的端口,但我不确定它是否直接解决了这个问题

代码示例

       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)
                }

【问题讨论】:

标签: c# multithreading sockets


【解决方案1】:

如果您在同一端口上只有一个侦听线程和一个发送线程,则可以。但如果更多,则让一个线程监听端口并将接收到的任何内容推送到队列中。其他线程应该从队列中读取。

【讨论】:

  • 最初你是说套接字可以在不同线程上与同一个端口同时使用。
  • 只有一个线程可以监听该端口,但另一个线程可以通过同一端口发送。
  • 所以 2 个线程、2 个套接字、1 个读取、1 个写入但都共享同一个端口
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2013-02-26
  • 2014-05-12
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多