Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi SocketFehler #10053 und 10057 (https://www.delphipraxis.net/9196-socketfehler-10053-und-10057-a.html)

DymonD 11. Mär 2006 11:35

Re: SocketFehler #10053 und 10057
 
Hi,
Ich hab auch ein Socket Fehler #10057 und weiß nicht, woher die kommen. ich hab schon alles mögliche ausprobiert, aber scheint nicht zu gehen.
Hinzu kommt noch, dass ich vor einiger Zeit wunderbar damit arbeiten konnte. Hier mal ein bisschen Source...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientSocket1.Address := Edit1.Text; //IP-Adresse
  clientsocket1.Active := true;
  clientsocket1.Open; //beides oder nur eins von (active und open)?
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Label1.Caption := ServerSocket1.Socket.ReceiveText;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ClientSocket1.Socket.SendText(Edit2.Text);
end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  ShowMessage(ServerSocket1.Socket.RemoteAddress);
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  ShowMessage('Try to connect');
end;

procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
  ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
  ShowMessage('No Connect');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  serversocket1.port := 10025;
  serversocket1.Active := true;
  Serversocket1.Open;
end;
Sogar mit sich selbst verbindet er nicht (localhost)...

THX schonmal im voraus..

Muetze1 11. Mär 2006 12:23

Re: SocketFehler #10053 und 10057
 
Grundlegend ist beiden Poster mit dem Problem nicht bewusst, dass ein Serversocket mehrere Clients verbunden hat. Somit stellt sich doch die Frage an wen der ServerSocket die Daten schicken soll, welche an
Delphi-Quellcode:
ServerSocket1.Socket.SendText('blubb');
übergeben werden. Hier muss der Socket des Clients übergeben werden, an welchen gesendet werden soll.

Und grundsätzlich wird in dem letzten Code wieder direkt auf die Komponenten zugegriffen, obwohl in dem Thread zuvor schon 2malig darauf hingewiesen wurde, dass man die Socket Instanz nutzen sollte, die den Events mit "Socket" übergeben wird.

DymonD 12. Mär 2006 10:26

Re: SocketFehler #10053 und 10057
 
hmm ich hab das eigentlich immer so gemacht und es hat hingehauen :roll:
gut ich mach das mal anders.. und außerdem sendet der Clien immer den text an den server ....

DymonD 25. Jul 2007 21:07

Re: SocketFehler #10053 und 10057
 
Blöd.

Delphi-Quellcode:
procedure TForm1.ServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
showmessage(Socket.ReceiveText);
end;
in der Prozedur wird schon von Anfang an auf ServerSocket1 (hier einfach Server) zugegriffen. Daher konnte ServerSocket1.Socket.blah nix mehr damit anfangen. Also ServerSocket1 weggelöscht und dann ging's... Rätselhaft, aber funzt.

Es ist schon komisch, einen Beitrag von jemandem zu lesen, der das gleiche Problem hat und dann festzustellen, dass es sein eigener Beitrag ist, vor einem Jahr... :D

Muetze1 25. Jul 2007 21:54

Re: SocketFehler #10053 und 10057
 
... auch schön zu lesen, dass meine Beiträge im Endeffekt richtig waren und zum Erfolg führen...

Manado 27. Jun 2008 17:28

Re: SocketFehler #10053 und 10057
 
Hallo!
Interessanter Thread, gleiche Probleme sind bei mir auch aufgetaucht!

Was aber jetz noch unbeantwortet gebliben ist - wie stelle ich die Client-Adresse ein, wenn der Server zum Client was schicken soll?

Ich will mit
Delphi-Quellcode:
Serversocket1.Socket.SendText('Ich bin ein gesendeter Text vom Server');
an einen Client der im Netzwerk auf adresse 192.168.2.5 läuft, was schicken, doch es kommt ein fehler.

Die Kommunikation Client-->Server geht köstlich.

Gruss

MSSSSM 27. Jun 2008 20:55

Re: SocketFehler #10053 und 10057
 
Delphi-Quellcode:
for i:=0 to ServerSocket1.ActiveConnections-1 do
ServerSocket1.Connections[i].SendText('hallo');


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz