2017-07-13 3 views
0

Ich versuche einen TCP-Listener zu erstellen, der die Clients empfängt, sie offen hält und beim Senden eines Datenaufrufs eine Callback-Methode aufruft. Ich kann nicht herausfinden, wie Sie den Rückruf hinzufügen und wie Sie den Client geöffnet halten.TcpClient - Empfangen mehrerer Nachrichten vom Client bei Rückruf

Mein aktueller Code sieht wie folgt aus:

protected void Listener() 
    { 
     TcpListener __Listener = new TcpListener(System.Net.IPAddress.Any, Port); 
     __Listener.Start(); 
     long _TicketNo = 0; 

     while (IsRunning) 
     { 
      client = __Listener.AcceptTcpClient(); 

      _TicketNo++; 

      RFIDReaderCommunication work = new RFIDReaderCommunication(client); 
      Trigger(work.process()); 

      System.Threading.Thread.Sleep(100); 
     } 
    } 

Die work.process() liest einfach die Bytes aus dem Netzwerk-Stream.

, aber dies empfängt nur einmal Daten vom Client. Kann jemand mir einen Hinweis geben, wie man Daten von dieser einzelnen Verbindung mehrfach erhält?

Antwort

0

Sie haben client = __Listener.AcceptTcpClient(); innerhalb Ihrer Schleife. Das bedeutet, sobald die Schleife wieder nach oben kommt, blockieren Sie, um auf die nächste eingehende Verbindung zu warten, und überschreiben dann Ihre client Variable.

Zunächst verschieben Sie diese Zeile über die Schleife.

Verwandte Themen