Ich habe eine Anwendung erstellt die sich mit Hilfe von
Indy-Komponenten verschiedene Daten hin und her schickt. Wenn ich das Programm starte kann ich ohne Probleme als Server mit dem Client Kontakt aufnehmen und es werden auch die "Namen" ausgetauscht die man in Edit-Felder eintragen kann.
Doch 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 werden die Namen gesendet:
Delphi-Quellcode:
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;
Dann sende ich dies:
Delphi-Quellcode:
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;
Ausgelesen wird das Ganze mit dieser Prozedur:
Delphi-Quellcode:
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');
end;
if ReadInteger=2 then
begin
M_Chat.Lines.Add(Name_Client+' hat das Spiel verlassen');
end;
if ReadInteger=3 then
begin
M_Chat.Lines.Add(Name_Client+': '+ReadLn);
end;
Disconnect;
end;
end;