![]() |
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 |
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:
Server:
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;
Code:
irgendwie seltsam ...
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; das einzige , was zum disconnecten da ist , ist jeweils der Button2 sonst nichts .. CU |
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:
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!
Memo1.Lines.Add(Socket.ReceiveText);
@wardz |
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:
CLIENT: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;
Delphi-Quellcode:
@wardzprocedure 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; |
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.
|
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 |
Re: SocketFehler #10053 und 10057
Hast du serversocket1 mal weg gelassen, nei mir funkst dein code dann!
|
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 |
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: |
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. |
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