Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

Hanswurst 20. Sep 2003 09:40


SocketFehler #10053 und 10057
 
Servus
ich bin grad dabei , ein Tool für meinen Clan zu schreiben , mittlerweile bin ich bei der ChatFucnktion ..
ich verwende D7 und die nachinstallierten WinSocks , da die INDYs bei mir net so richtig funzen ..

bisher hatt immer alles wuderbar geklappt , nur jetzt meint der Server , wenn der Client ne Nachricht schreibt :
Windows-Socket-Fehler: EIne Anforderung zum Senden oder Empfangen von Daten wurde verhindert , da der Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem SendTo-Aufruf) keine Adresse angegeben wurde (10057) , auf API recv

und der Client meint:
Asynchroner Socketfehler #10053

was ja bedeuten würde , dass der Server den Client "unwissentlich" kickt und meckert , dass er die Daten vom Client nicht erhalten kann ...

ich weis , dass mein Problem schon in 2 Threads erwähnt wird , aber bei keinem wurde bisher eine Lösung gepostet

DANKE
CU

Hanswurst 20. Sep 2003 09:49

Re: SocketFehler #10053 und 10057
 
Ich nochmal
jetzt hab ich mir mal schnell 2 Proggis , einer mit WinSockClient und einen mit Server zusammengebaut , und es kommt der gleiche Fehler ..
nur jetzt meckert nurnoch der Server und der Client disconnected schön brav ..

Client:
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host:=edit1.Text;
ClientSocket1.Port:=SpinEdit1.Value;
ClientSocket1.Active:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Socket.Close;
ClientSocket1.Active:=false;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(ClientSocket1.Socket.ReceiveText);
end;
Server:
Code:
rocedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Port:=SpinEdit1.Value;
ServerSocket1.Active:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Close;
ServerSocket1.Active:=false;
end;

procedure TForm1.ServerSocket1ClientWrite(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(ServerSocket1.Socket.ReceiveText);
end;
irgendwie seltsam ...
das einzige , was zum disconnecten da ist , ist jeweils der Button2
sonst nichts ..

CU

ATwardz 23. Sep 2003 21:49

Re: SocketFehler #10053 und 10057
 
Hi,
ich habe es zwar noch nicht ausprobiert aber schreibe einfach anstatt:

Delphi-Quellcode:
Memo1.Lines.Add(ServerSocket1.Socket.ReceiveText);
Delphi-Quellcode:
Memo1.Lines.Add(Socket.ReceiveText);
Ich hatte zumindest früher schon dieses Problem und das war die Lösung auf die ich erst nach Stunden gekommen bin! Warum der das nicht akzeptiert, keine Ahnung! Muss man halt so hinnehmen! Aber das müsste eigentlich der Fehler sein!

@wardz

ATwardz 23. Sep 2003 21:54

Re: SocketFehler #10053 und 10057
 
Ach ja eines noch wieso vertauschts du eigentlich Server und Client, dann fehlen dir doch schöne Proceduren wie connecting,Error,OnRead,....

Wieso machst du das nicht so von der Art her?Nur ein Tipp!

Server:

Delphi-Quellcode:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Server.Port:=25544;
  server.Open;
end;

procedure TForm1.ServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  MessageDlg(Socket.ReceiveText, mtInformation, [mbOK], 1);
  Form1.Caption:='nachricht';
end;

procedure TForm1.ServerClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Form1.Caption:='connected';
end;

procedure TForm1.ServerClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Form1.Caption:='Disconnected';
end;
CLIENT:

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
begin
  client.Port:=25544;{muss der gleiche sein}
  client.Address:=Edit1.Text;{IP oder PC-name}
  client.Open;
end;

procedure TForm1.ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  Form1.Caption:='connected';
end;

procedure TForm1.ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Form1.Caption:='disconnected';
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Client.Close;
end;

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

T-Olli 24. Sep 2003 11:30

Re: SocketFehler #10053 und 10057
 
Du hast nicht zufällig gerade eine Personal Firewall in Betrieb genommen. An so einem blöden Fehler hab ich auch schon mal länger gesucht.

Hanswurst 26. Sep 2003 12:54

Re: SocketFehler #10053 und 10057
 
Servus
@T-Olli
ne Firewall hab ich momentan NICHT drauf , da NIS 2003 nach nem Update in WindoofXP ne "Startverzögerung" einbaut ..

normales Booten:
Einschaltknopf drücken , Bios , ggf (SCSI-, Raid-, IDE-) Controller , WindowsXP Bootscreen , Startbildschirm (~10 Sec) , "HochfahrSound" , Hintergrundproggis

mit Update:
Einschaltknopf drücken , Bios , ggf (SCSI-, Raid-, IDE-) Controller , WindowsXP Bootscreen , Startbildschirm (~60 Sec) , HIntergrundproggis , nach ca 5 Min "HochfahrSound" und erst danach kann man andere Proggis ausführen ..

und ZoneAlarm macht eh NUR Probleme ..

@ATwardz
1.wieso habe ich Client und Server vertauscht ??? und warum sollen dann die "schönen" Prozeduren wie OnRead , OnError usw wegfallen ???
2.will ich nicht wie in deinem Bsp die Empfangene Nachricht in eine MsgBox , sondern in ein Memo/RTF-Feld schreiben
oder meinst du , warum ich die nicht gepostet habe ?? ich hab die Errorbehandlung usw nicht gepostet , da die ja NICHTS mit dem Problem zu tun hat ..

trotzdem ein vorläufiges Danke an euch
CU

ATwardz 26. Sep 2003 13:56

Re: SocketFehler #10053 und 10057
 
Hast du serversocket1 mal weg gelassen, nei mir funkst dein code dann!

Hanswurst 27. Sep 2003 09:30

Re: SocketFehler #10053 und 10057
 
Servus
ich hab mal ClientSocket1 und ServerSocket1 aus dem Code entfernt ..
jetzt gibt mir der Server trotzdem noch die selbe Fehlermeldung , nur nichtmehr der Client und wenn ich vom Client zum Server was schreibe , dann ist mein Client einfach disconnected ...

@ATwardz
könntest du mir mal bitte deinen Code/einen Teil davon schicken ??
nicht , dass es an meinem PC liegt , was aber eher unwahrscheinlich ist ..
bei Windows weis man ja nie ;)

Danke
CU

ATwardz 27. Sep 2003 14:00

Re: SocketFehler #10053 und 10057
 
Liste der Anhänge anzeigen (Anzahl: 1)
Der Server hat keine Adresse an die er seine Nachricht schicken kann,
daher kommt immer die Fehlermeldung!
Leider habe ich keine Möglichkeit gefunden vom Server aus zu senden!
Ich würde an deiner Stelle ein Programm schreiben welches jeweils einen server und
einen Client hat!
Ich habe ein Beispiel Programm beigefügt!
Wenn du dich auf einen Port festlegen willst kannst du die Server auch schon
beim Formcreate öffnen, wichtig ist halt nur das du für beide verbindungen einen
unterschiedlichen Port benutzt!

@wardz

:cheers:

Hanswurst 28. Sep 2003 17:12

Re: SocketFehler #10053 und 10057
 
Danke ATWardz für das Beispiel !!

nur hast du die Unit1.pas vergessen :freak:

auf gutes programmieren :coder: :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:35 Uhr.
Seite 1 von 2  1 2      

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