2016-03-31 11 views
3

Ich habe mehrere Threads mit mehreren Sockets, aber alle auf einen Port zeigen. Wird es funktionieren? Ich habe einige Threads gesehen sagen, mehr Anwendungen können nicht die gleichen Ports verwenden, aber ich bin nicht sicher, dass es direkt diese Frage richtetC# mehrere Sockets mit dem gleichen Port auf separaten Threads

Beispiel des Codes

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

Hier ist eine sehr nette Antwort, die es alle zusammenfasst: http://StackOverflow.com/a/724022/24472 – Larry

Antwort

1

Wenn Sie nur einen listening Thread und ein Senden Faden am selben Port bist du ok. Aber wenn mehr als einen Thread auf den Port hören und drücken Sie was auch immer in die Warteschlange. Andere Threads sollten aus der Warteschlange lesen.

+0

zunächst Sie sagen, Sockets können gleichzeitig mit dem gleichen Port auf verschiedenen Threads verwendet werden. – silentcallz

+0

Nur ein Thread kann den Port abhören, aber ein anderer Thread kann über denselben Port senden. –

+0

so 2 Threads, 2 Sockets, 1 lesen, 1 schreiben, aber alle teilen den gleichen Port – silentcallz

Verwandte Themen