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:
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; |