Danke, ich habe jetzt beim Server für jede Port eine Execute gemacht. Jetzt möchte ich mit dem Client eine Portadresse aus der Listbox auswählen - mit der er sich dann verbindet.
Delphi-Quellcode:
// Client
procedure TForm1.Button1Click(Sender: TObject);
begin
if not TCPClient.Connected then
TCPClient.Connect
else
TCPClient.IOHandler.WriteLn(Edit1.Text);
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var i : Integer;
begin
for i := 0 to ListBox1.Count - 1 do
if ListBox1.Selected[i] then
TCPClient.Port := StrToInt(ListBox1.Items.Strings[i]);
end;
Delphi-Quellcode:
// Server
procedure TForm2.FormCreate(Sender: TObject);
begin
IDTCPServer1.DefaultPort := 10;
IDTCPServer1.Active := true;
IDTCPServer2.DefaultPort := 20;
IDTCPServer2.Active := true;
end;
procedure TForm2.IdTCPServer2Execute(AContext: TIdContext);
begin
Memo1.Lines.Add('Port: ' + IntToStr(IDTCPServer2.DefaultPort) + ' ' + acontext.Connection.IOHandler.ReadLN);
end;
procedure TForm2.IdTCPServer3Execute(AContext: TIdContext);
begin
Memo1.Lines.Add('Port: ' + IntToStr(IDTCPServer3.DefaultPort) + ' ' + acontext.Connection.IOHandler.ReadLN);
end;
usw.
Beim Server zeigt er mir aber so immer den selben Port an, jetzt weiss ich nicht wenn ich auf einem anderen Port sende, ob er tatsächlich über den Port senden und nur die falsche Portnummer anzeigt.