Entwickler-Ecke
Internet / Netzwerk - Chat Proggi - Fehlersuche
Doppelhertz - Mo 16.09.02 19:33
Titel: Chat Proggi - Fehlersuche
Das Problem:
Client kann zu Server senden, abba sobald server senden will kommt die Fehlermeldung:
" Win-Socket-Fehler: Eine Anforderung zum Senden oder Empfangen von Daten worde verhindert, da der Socket nicht verbunden ist und (beim Senden über ein Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde (10057), auf API 'send'"
Hier der Abschnitt des Quelltextes der für's senden verantwortlich is:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| procedure TForm1.sendenbtnClick(Sender: TObject); var Stringlist2: TStrings; I, H: integer; begin if (Serversocket1.Socket.Connected = false) and (Clientsocket1.Socket.Connected = true) then begin
begin Stringlist2 := TStringlist.Create; StringList2.LoadFromFile(ExtractFilePath(Application.exeName)+'Einstellungen.ini'); eigname := StringList2.Strings[0]; eigtelnummer := StringList2.Strings[1]; eighandynummer := StringList2.Strings[2]; sendtext := '<' + eigname + '><'; for I := 0 to (form1.eingabefeld.Lines.Count - 1) do begin sendtext := sendtext + ' ' + Eingabefeld.Lines[I]; end; stringlist2.free; end;
ClientSocket1.Socket.SendText(sendtext); with texte.lines do begin add (eigname + ':'); //add (eingabefeld.text); for H := 0 to eingabefeld.lines.count do begin add (' ' + eingabefeld.lines[H]); end; eingabefeld.clear; end; end;
if (Serversocket1.Socket.Connected = true) and (Clientsocket1.Socket.Connected = false) then begin
begin Stringlist2 := TStringlist.Create; StringList2.LoadFromFile(ExtractFilePath(Application.exeName)+'Einstellungen.ini'); eigname := StringList2.Strings[0]; eigtelnummer := StringList2.Strings[1]; eighandynummer := StringList2.Strings[2]; sendtext := '<' + eigname + '><'; for I := 0 to (form1.eingabefeld.Lines.Count - 1) do begin sendtext := sendtext + ' ' + Eingabefeld.Lines[I]; end; //stringlist2.free; end; ServerSocket1.Socket.SendText(sendtext); with texte.lines do begin add (eigname + ':'); add (eingabefeld.text); eingabefeld.clear; end; end; end; |
O'rallY - Di 17.09.02 19:59
1. ersmal habe ich nen Fehler endeckt:
Quelltext
1: 2: 3: 4:
| for H := 0 to eingabefeld.lines.count -1 do begin add (' ' + eingabefeld.lines[H]); end; |
Da du das bei der "Clientprozedur" auch schon so gemacht hast, gehe ich mal davon aus, dass das ein Tippfehler war :wink: (das "form1." kannst du übrigens weglassen).
2.
versuch mal:
Quelltext
1:
| ServerSocket1.Socket.Connections[0].SendText(sendtext); |
mit der Eigentschaft Connections kann man alle Verbindungen, die zum Server aufgebaut wurden ansprechen.
Doppelhertz - Mi 18.09.02 21:48
Thx, funzt perfekt. Da wär ich nich so schnell drauf gekommen, da ich mich mit der Client und Serverkomponente nich gut auskenne!
O'rallY - Do 19.09.02 20:23
Ist doch gern geschehen. Freut mich das ich helfen konnte :wink:.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!