2016-06-03 15 views
0

Ich möchte mich bei meiner Arbeit mit einem bestimmten Barcodeleser verbinden, aber derzeit habe ich einige Probleme, um zu verstehen, wie das Lesen von TCP-Streams mit C# funktioniert.C# TCP Client, der auf Daten wartet

Ich habe nach vielen Code-Beispielen auf Stackoverflow gesucht und wie ich sehen kann, öffnen Leute oft eine Verbindung, senden einen Befehl und fragen dann nach der Antwort.

Der Punkt ist, der Barcodeleser akzeptiert nur eine TCP-Verbindung und sendet dann die Daten mit meinen Daten.

Ich möchte den effizientesten Weg finden, TcpClient oder NetworkStream zu verwenden, um die Daten auf kontinuierliche Weise zu lesen. Ich meine, ich würde gerne die Daten hören, wenn es ankommt, aber auch viele andere Dinge gleichzeitig verarbeiten, während ich zuhöre.

Ich wunderte mich, wenn einfache TCP-Bibliotheken wie eine mit einer Connect-Funktion existiert, und eine Ereignisauslösung, wenn Sie Daten empfangen (mit einem Begrenzer oder mit einer Länge).

Dank

Antwort

0

TCP klingt nicht richtig, aber wenn es es könnte sein, die als ein http server.If ist es dann würden Sie einen Httpclient verwenden. Wenn es nur TCP ist, würden Sie etwas tun wie: Async Client Socket

0

Ich endlich eine einfache TCP-Bibliothek namens SimpleTCP gefunden. Ich bin in der Lage zu meinem Netzwerk Barcodeleser mit der folgenden Codezeile zu verbinden. g_Client.Connect(ip, port);

Dann gibt es eine Veranstaltung DataReceived (g_Client.DataReceived += l_Client_DataReceived;) genannt, die mich erlauben, genau das zu tun, was ich will

Diese Bibliothek auch gibt Zugriff auf den TcpClient, den es benutzt, und suche gerade nach der Möglichkeit, die Sonderzeichen wie < STX> zu sehen (gibt mir gerade ein spezielles Zeichen in ASCII zurück), aber ich muss einen anderen Thread dafür machen, denke ich.