Autor Beitrag
Doppelhertz
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 16.09.02 19:33 
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:
ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Di 17.09.02 19:59 
1. ersmal habe ich nen Fehler endeckt:
ausblenden 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:
ausblenden Quelltext
1:
ServerSocket1.Socket.Connections[0].SendText(sendtext);					

mit der Eigentschaft Connections kann man alle Verbindungen, die zum Server aufgebaut wurden ansprechen.

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
Doppelhertz Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Do 19.09.02 20:23 
Ist doch gern geschehen. Freut mich das ich helfen konnte :wink:.

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...