ClientSocket verursacht eeConnect-Error
-
Hallo zusammen,
der ClientSocket in meiner Anwendung verursacht bei jedem Connenctversucht den Fehler eeConnect -- A connection request that was already accepted could not be completed.
Zuvor wird eine Verbindung zu einer, an eine ServerSocket-Komponente übergebene, IP-Adresse aufgebaut.
void __fastcall Tsds_listener::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { AnsiString command; command = Socket -> ReceiveText(); int pos,dellang; String delimiter; delimiter = ":"; TStringList *feld = new TStringList(); feld->Clear(); feld->Duplicates=dupAccept; dellang=delimiter.Length(); pos=command.AnsiPos(delimiter); while(pos>0) { feld->Add(command.SubString(1,pos-1)); command.Delete(1,pos+dellang-1); pos=command.AnsiPos(delimiter); } feld->Add(command); //Erste commandbahndlung if(feld -> Strings[2] == "command") { if(feld -> Strings[2].Length() == StrToInt(feld -> Strings[1])) { connect(feld -> Strings[0]); } } } void connect (AnsiString ip) { sds_listener -> ClientSocket1 -> Address = ip; sds_listener -> ClientSocket1 -> Open(); }Gruß
Dominique
-
Wo kontrollierst du, ob schon eine Verbindung besteht?
-
Hallo,
so direkt prüfe ich nicht ob schon eine Verbindung besteht. Wie geht das denn?? Ich hab gerade erst mit den Client/Server-Komponenten angefangen. Was ich nun vorhatte war ersteinmal eine Verbindung von einem Rechner zu einem anderen aufzubauen und eine Rückverbindung aufzubauen um Statusmeldungen zu kriegen.
Und in die eine Richtung klapp das ganz gut.
ClientSocket1 -> Address = LabeledEdit1 -> Text; ClientSocket1 -> Open(); ClientSocket1 -> Socket -> SendText("163.183.197.162:connect:1");Baut die Verbindung auf und überträgt auch den command, der dann von dem obigen Quellcode weiterverarbeitet wird.
Die IP Adresse und alles andere stimmt.
Gruß
Dominique
-
Das Chat-Beispiel aus dem \examples\internet-Verzeichnis des BCB kennst du?
-
Wo genau finde ich dieses Beispiel ??
-
im Verzeichnis %BCB%\Examples\Internet wie schon von Jansen geschrieben
-
Ansonsten auch bei Borland direkt.