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
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
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:
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
Gausi: Code- durch Delphi-Tags ersetzt.