Wollen ein .Net-Buchse Event-Handler für eingehende Daten

Bin ich umschreiben, die eine alte VB6-Programm in C# (.Net Framework 4.0). Es kommuniziert mit einem Stück von industriellen Anlagen in der Fabrikhalle. VB6 verwendet einige der alten COM-basierten socket-software; ich bin mit dem .Net Socket-Klasse.

Wenn ich eine Nachricht an den Geräten erwarte ich eine Antwort, so weiß ich, zu hören, für die man dann. Aber die Geräte können auch Nachrichten senden asynchron ohne Warnung (sagen Sie, um anzuzeigen, dass ein Ausfall oder problem). Also ich immer haben, erhalten diese. Also, was ich wirklich mag, ist eine Ereignisprozedur, die aufgerufen wird, wenn etwas kommt aus dem Gerät.

Die Socket-Klasse scheint die Verwendung einer BeginReceive/EndReceive Schema zum empfangen von Ereignis-handling. Kann ich einfach eine BeginReceive einmal beim start meines Programms definieren Sie einen event-handler für alle eingehenden Nachrichten, oder muss ich ständig tun BeginReceive/EndReceive s in meinem Programm?

Vielen Dank im Voraus für die Klärung der korrekte Weg, dies zu tun.

  • Ich habe nicht versucht, alles noch, weil ich versuche zu verstehen, wie die Socket-Klasse beabsichtigt, Veranstaltungen wie diese zu behandeln sind. Wenn ich mich nicht verlesen es die MSDN macht es scheinen, wie Sie zu erwarten sind, zu nennen BeginReceive jedes mal wieder neu, während ich bin auf der Suche nach einem event-handler, dass ich einmal deklariert und Ereignisse nur zu halten, kommen in auf es so lange, wie ich bin verbunden. Ist es so eine Sache mit der Socket-Klasse?
  • Keine Ahnung, warum dies nun schon downvoted: Es ist so gut geschrieben, die Antwort nicht nur löst, sondern auch mein problem, ich war zu posten.
InformationsquelleAutor user316117 | 2013-01-08
Schreibe einen Kommentar