Ich benutze dafür TServerSocket, TClientSocket.
Es muss ein server und ein klient dabei sein. z.B. dein pc ist der server, dann muss auf dem anderen PC klient sein.
Hier ein beispiel mit 1 TMemo, 1 TEdit, 1 TButton, 1 TServer/ClientSocket pro programm
Du machst die komponente auf die form (hier nimmst du TServerSocket)
Dann schreibst du hin:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Port:=4947;
ServerSocket1.Active:=true;
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.RemoteAddress + ': Connected');
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('>' + Socket.RemoteAddress + ': ' + Socket.ReceiveText);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do begin
ServerSocket1.Socket.Connections[i].SendText(Edit1.Text);
Memo1.Lines.Add('<' + ServerSocket1.Socket.Connections[i].RemoteAddress + ': ' + Edit1.Text);
end;
Edit1.Text:='';
end;
Bei dem Client:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientSocket1.Port:=4947;
ClientSocket1.Address:='127.0.0.1';
ClientSocket1.Active:=true;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Connected to ' + Socket.RemoteAddress);
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Disconnected from ' + Socket.RemoteAddress);
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('>' + Socket.ReceiveText);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText(Edit1.Text);
Memo1.Lines.Add('<' + Edit1.Text);
Edit1.Text:='';
end;
Bei ClientSocket1.Address gibst du die
IP adresse anderen PC's
Also mit SendText schickst du deinen text und in ReceiveText kommt er an.