Socket Control

Servus,

ich suche einen vernünftigen Weg um Client-Server Verbindungen in .NET herzustellen.
Mir ist bewusst, das dies über System.Net.Socket möglich ist,
allerdings gestaltet sich das für mich im Moment noch zu schwierig.

Ich suche so etwas wie das Winsock-Control, welches ich in VB6 eingesetzt habe. Ich kann es zwar auch einbinden, allerdings scheint es nicht so zu funktionieren, wie ich mir das vorstelle und in diversen Foren wird eh davon abgeraten, es zu benutzen.

Meine Frage ist nun, ob irgendjemand weiß, ob sowas schonmal für .NET umgesetzt wurde.
Ich habe zwar schon ein paar Lösungen gefunden, allerdings kosten alle etwas. Ich kann mir nicht vorstellen, das so etwas nicht auch umsonst zu haben ist.

Wenn meine Annahme falsch ist, das Winsock mithilfe von System.Net.Socket auf den ersten Blick nicht so einfach zu realisieren ist, dann würde mir auch schon helfen, wenn mir jemand erklärt, wie ich das umsetzen könnte.

Ich brauche im Endeffekt ein Objekt mit folgenden

Eigenschaften (analog zu den Bezeichnungen bei Winsock):

RemoteIP
RemotePort
LocalPort
State

Methoden:

Close
Connect
Senddata
Getdata

Events:
Connect
DataArrival
Close

Für alles was darüberhinaus geht, hab ich vorerst keine Verwendung.

mfg hendrik

Hallo!
Wenn Du wirklich direkt auf Socketebene werkeln willst, kommst Du nicht darum herum, Dich in den System.Net.Sockets Namespace einzuarbeiten - dort findest Du neben der Socket Klasse noch diverse andere hilfreiche Klassen wie bspw. den TcpClient.

Je nachdem, was Du konkret machen willst, wäre auch eine Beschäftigung mit .NET Remoting (oder allgemeiner der WCF) angebracht. Da musst Du Dich nicht mit den Details der Socketkommunikation beschäftigen (und vll. sogar noch eigene Protokolle implementieren), sondern kannst Dich auf die Kernfunktionalität der kommunizierenden Objekte konzentrieren.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hier ein Post von mir aus einem anderen Forum,
das ich mich mit System.Net.Sockets auseinandersetzen muss
habe ich inzwischen auch gemerkt =/

_Hey Leute,

ich versuche im Moment einen Multiuserchat, welchen
ich mal in VB6 gebaut habe, nun in .NET umzusetzen.
Das ist nun mein erstes Projekt in .NET.

Ich stoße bei den Netzwerkverbindungen allerdings auf massive Probleme, da ich hier nicht mehr bequem das Winsock-Control verwenden kann.
Folgene Probleme habe ich bisher höchstens teilweise gelöst: (hoffe es kann mir bei jedem geholfen werden):

  • Einrichtung eines simplen Sockets für den Client, welcher zum Server verbinden sowie Daten senden und empfangen kann. Die Verbindung sollte abgebrochen werden können und ich muss an den aktuellen Status kommen.

  • der Server sollte mit einem Socket auf Verbindungen warten und bei einer eingehenden Verbindung diese mit einem anderen Socket annehmen, sodass das ursprüngliche Socket wieder frei ist

  • alle Sockets auf dem Server müssen zu jeder Zeit ansteuerbar sein um auf eingehende Daten zu reagieren oder Daten zu senden. In VB6 hatte ich dort eine Array und jeder Socket somit einen Index. Es gibt dort auch ein DataArrival Event, wo der Index übergeben wurde. So konnte ich klar zuordnen, woher die Daten kommen.

Die Frage ist nun, ob ich für .NET komplette andere Denkansätze brauche oder ob das alles so irgendwie umgesetzt werden kann.
Ich bräuchte da nur mal ein zwei Beispiele, damit ich mir vorstellen kann, wie das alles funktioniert. Ich habe leider keine vernünftigen Tutorials gefunden bisher (eigentlich keins).

Vielen Dank im Vorraus
Hendrik_

Hier ein Post von mir aus einem anderen Forum,
das ich mich mit System.Net.Sockets auseinandersetzen muss
habe ich inzwischen auch gemerkt =/

[…]

ich versuche im Moment einen Multiuserchat, welchen

[…]

Hallo Hendrik!
Wenn Du einfach mal nach „remoting chat“ googlest, wirst Du mit Beispielen totgeworfen - so eine Chatanwendung ist geradezu das Paradebeispiel für Remoting, das für so ziemlich jedes Tutorial verwendet wird…

Martin