C# Socket.Bind Problem

touristguy

Mitglied
Hallo, ich versuche eine Verbindung als Client mit einem Server aufzubauen. Das Öffnen des Sockets funktioniert soweit.
Nun will ich einen Befehl an den Server senden, der mir dann eine entsprechende Antwort zurückschickt. Beim Senden gibt es noch keine Probleme, aber ich weiß nicht wie ich das Empfangen richtig mache.
Ich habe gelesen, dass man den Endpoint mit Bind() vorher festlegen muss, bevor ich receive aufrufen kann. Wenn ich aber folgenden Code verwende:
Code:
                sock.Send(OutputBuf);
                sock.Bind(ipEP);
                bytes = sock.Receive(bytesReceived, bytesReceived.Length, 0);
bekomme ich folgende Fehlermeldung, die ich mit einer exception abfagen:
"10022: Ein ungültiges Argumet wurde übergeben".
Lasse ich die Zeile mit sock.Bind(ipEP) weg, dann stürzt mir meine Applikation einfach ab. Bzw. wenn ich auf Debug Pause gehe, dann hängt er in der Zeile wo ich sock.Receive... verwende.
Kann mir da vielleicht jemand helfen? Achja noch Infos zur Verbindung. Wie erwähnt, eine Client Verbindung TCP mit IPv4 und Stream.
Vielen Dank.

Gruß Phil
 
Vielleicht noch die Instanziierung des Sockets:
Code:
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
ip_adress = IPAddress.Parse(ip);
ipEP = new IPEndPoint(ip_adress, port);
sock.Connect(ipEP);
 
Zurück