Mega Code Archive

 
Categories / Delphi / LAN Web TCP
 

How to Use TcpClientServer for a Chat

Title: How to Use TcpClient/Server for a Chat unit TcpConnection; interface uses Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Sockets; type ...Host1: TEdit; RPort: TEdit; LPort: TEdit; Lines1: TEdit; ChatWnd: TMemo; ......TcpClient1: TTcpClient; TcpServer1: TTcpServer; procedure Connect1Click(Sender: TObject); procedure Send1Click(Sender: TObject); procedure TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Connect1Click(Sender: TObject); begin TcpServer1.Active := False; {Disconnect First} TcpServer1.LocalPort := LPort.Text; TcpServer1.Active := True; {Then Connect} end; procedure TForm1.Send1Click(Sender: TObject); begin TcpClient1.RemoteHost := Host1.Text; {To connect to Server you must know his IP address, like 255.255.255.255} TcpClient1.RemotePort := RPort.Text; try if TcpClient1.Connect then TcpClient1.Sendln(Lines1.Text); finally TcpClient1.Disconnect; end; end; {OnAccept Event} procedure TForm1.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient); var s: string; begin ChatWnd.Lines.Add('Start Sending Data'); ChatWnd.Lines.Add('Rem Host: ' + ClientSocket.LookupHostName(ClientSocket.RemoteHost) + ' (' + ClientSocket.RemoteHost + ')'); s := ClientSocket.Receiveln; while s '' do begin ChatWnd.Lines.Add(s); s := ClientSocket.Receiveln; end; ChatWnd.Lines.Add('End Sending Data'); end; end.