ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1143
1143
EMPFEHLEN
-
Hallo,
ich schreibe an einem Programm, wo sich zwei Computer gegenseitig Nachrichten schicken sollen. Beide Computer führen dasselbe Programm aus (onCreate-Methode):
Code :1 2 3 4 5
Server := TServerSocket.Create(Start); Server.Port := 78; Server.Active := true; Client := TClientSocket.Create(Start); Client.Port := 78;
Der Kommunikationspartner wird im Laufe des Programms anhand seiner IP identifiziert:
Code :1
Client.Host := gegner_ip;
Der Server ist ja bereits aktiv. Wenn ich nun den Client aktiviere (Client.Active := true; ), müsste dieser Client dem Server-Socket, also seinem Host, Nachrichten schicken können. Dann kommt auf der Empfänger-Seite jedoch der Windows-Error 10057:
Warum ist der Socket nicht verbunden? Was mache ich falsch?A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using sendto) no address was supplied.
-
Jetzt tut sich ein neues Problem auf: Zu Beginn wird ein Server-Socket auf dem PC, wo man das Programm ausführt, initialisiert.
Code :1 2 3 4
Server := TServerSocket.Create(Start); Server.Socket.OnClientRead := Empfangen; Server.Port := 40; Server.Active := true;
Wenn ich das Programm so auf einem anderen Rechner ausführe, kommt der Socket Error 10013: Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzuässig, auf API 'bind'.
Wie kann ich die Zugriffsrechte so einstellen, dass der Socket aktiv wird? Was muss ich ändern?
-
Ist der Firewall im Weg? Port schon belegt?
-
Das Problem hat sich durch eine Portänderung erledigt.
Nun ist es so: Eine Unit (Start), wo die Socket-Kommunikation klappt, zerstört ihre eigenen Sockets und erstellt ein neues Formular (Main). Diese neue Unit beinhaltet wieder einen Server- und einen Client-Socket, die sich über einen anderen Port unterhalten. Bei dem Versuch, eine Nachricht zu schicken, erscheint der Socket-Error 10049, d.h. die IP-Adresse, die beim Client als Host eingetragen ist, ist ungültig. Dies kann jedoch nicht sein, da es genau dieselbe Adresse ist, mit der in der Anfangsunit (Start) erfolgreich kommuniziert wurde.
Was ist da los?
-
Ich habe jetzt die Socket-Verbindung komplett in eine Unit gelagert. Somit entfällt die parallele Existenz von zwei Socket-Verbindungen, die wahrscheinlich zu diesem Fehler geführt hat.
Ähnliche Themen
-
Socket- Connection über einen SOCKS-Proxy mit JAVA
Von lukelukeluke im Forum JavaAntworten: 11Letzter Beitrag: 12.03.09, 13:19 -
'Socket Error #10038 Socket operation on non-socket'
Von jupp2oo8 im Forum C/C++Antworten: 2Letzter Beitrag: 30.01.08, 10:24 -
'Socket Error #10038 Socket operation on non-socket'
Von jupp2oo8 im Forum C/C++Antworten: 2Letzter Beitrag: 29.01.08, 14:59 -
Problem mit MySQL connection(Connection aufbauen beenden und wieder connecten)
Von FBIagent im Forum C/C++Antworten: 1Letzter Beitrag: 04.04.06, 20:06 -
Problem: "Software caused connection abort: socket write error"
Von cavecanem im Forum JavaAntworten: 2Letzter Beitrag: 27.04.05, 10:56





Zitieren

Login




