Autor Beitrag
Slowmo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 29

Suse Linux 10.1
Lazarus v.0.9.18
BeitragVerfasst: Fr 08.07.05 16:06 
Nachdem ich nach langem Arbeiten jetzt endlich meine Indy TCP Server und Client Komponenten, habe ich ein weiteres Problem.

Sobald ich das zweite Mal einen Integer senden will kommt der Fehler "SocketError #10048 - Adress already in use", aber ich disconnecte doch nach jedem Arbeitsschritt

Hier der Quelltext für das Senden des 1.Integers
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TClient.FormCreate(Sender: TObject);
begin
tcpclient.BoundPort:=4048;
tcpclient.Host:=Host_IP;
Form1.Hide;
M_Chat.Lines.Add('Connecting...');
with TCPClient do begin
    Connect;
    try
    WriteInteger(1);
    M_chat.Lines.Add(ReadLn);
    WriteLn(Name_Client);
    Name_Host:=ReadLn;
    M_chat.Lines.Add(Name_Host+' ist der Server');
    finally
      Disconnect;
    end;
  end;
end;


Und hier für das auslesen desselben

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure THost.TCPServerExecute(AThread: TIdPeerThread);
begin
with AThread.Connection do
begin
    if ReadInteger=1 then
      begin
      M_chat.Lines.Add('Incoming Connection');
      WriteLn('Connection accepted');
      Name_Client:=ReadLn;
      WriteLn(Name_Host);
      M_chat.Lines.Add(Name_Client+' ist dem Spiel beigetreten');
      Disconnect;
      end;
end;
end;


Dann sende ich dies:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TClient.B_ChatClick(Sender: TObject);
begin
with TCPClient do begin
    Connect;
    try
    WriteInteger(3);
    WriteLn(E_Chat.Text);
    M_chat.Lines.Add(Name_Client+': '+E_Chat.Text);
    E_Chat.Text:=' ';
    finally
      Disconnect;
    end;
  end;
end;

Und wenn ihr sofort den Fehler seht und denkt "Mann ist der doof" dann bedenkt das ich ein blutiger Anfänger bin.

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.
ebs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 213

Suse Linux 9.2, Win 98, Win NT, Win XP, Win for Workgroups, Win XP SP2, Dos 6.1
D3 Prof, D2005 PE, Delphi 2006 Prof.
BeitragVerfasst: Sa 09.07.05 11:44 
Also mir fällt nur auf, dass du den Port 4048 für den Clienten einstellst, aber nicht für den Server. Probiers mal indem du auch den Port für den Server setzts. :D
Slowmo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 29

Suse Linux 10.1
Lazarus v.0.9.18
BeitragVerfasst: Sa 09.07.05 12:10 
Der Port ist für den Server schon gesetzt, der Client kann auch connecten aber nur ein Mal Daten schicken. Dann kommt dass die Adresse schon benutzt wird.