2016-03-31 12 views
3

Birden çok soket kullanarak birden çok iş parçacığım var ama hepsi bir bağlantı noktasına işaret ediyor. Çalışacak mı? Birden Uygulamalar aynı portları cant'kullanma diyerek bazı konuları gördük ama doğrudan bu soruyu koduC# Birden çok soket aynı dişleri kullanarak ayrı iş parçacıkları üzerinde

Yalnızca bir dinleme parçacığı varsa
 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

İşte bunu özetleyen çok güzel bir cevap: http://stackoverflow.com/a/724022/24472 – Larry

cevap

1

ve bir gönderme iplik ait

Örnek adresleri emin değilim aynı portta sen iyisin. Fakat daha sonra bir iplikçiği limanda dinler ve sıraya girenleri sıraya geçirir. Diğer iş parçacıkları sıradan okunmalıdır.

+0

Başlangıçta, soketlerin aynı anda farklı vida dişleriyle aynı anda kullanılabileceğini söylüyorsunuz. – silentcallz

+0

Bağlantı noktasını yalnızca bir iş parçacığı dinleyebilir, ancak başka bir iş parçacığı aynı bağlantı noktası üzerinden gönderebilir. –

+0

yani 2 konu, 2 soket, 1 okundu, 1 yaz ama hepsi aynı portu paylaşıyor – silentcallz

İlgili konular