
08.07.2010, 21:20
|
Прохожий
|
|
Регистрация: 07.07.2010
Сообщения: 8
Репутация: 10
|
|
полный код.
на каждом приложении по две формы использую, вот коды где собственно сами сервер и клиент сокет.
клиент:
Код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;
type
TForm2 = class(TForm)
ClientSocket: TClientSocket;
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.FormActivate(Sender: TObject);
begin
ClientSocket.Port:=159;
ClientSocket.Address:=Form1.AddressEdit.Text;
ClientSocket.Host:=Form1.AddressEdit.Text;
ClientSocket.Active:=True;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientSocket.Active:=False;
Form2.Hide;
Form1.Show;
end;
procedure TForm2.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
var nik: string;
begin
Memo1.Lines.Add('[('+DateToStr(Now)+'):('+TimeToStr(Now)+')] Подключились');
Socket.SendText(Form1.NikEdit.Text);
end;
procedure TForm2.ClientSocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('[('+DateToStr(Now)+'):('+TimeToStr(Now)+')] Отключились');
Socket.SendText(Form1.NikEdit.Text);
end;
procedure TForm2.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(Edit1.Text);
ClientSocket.Socket.SendText(Edit1.Text);
Edit1.Clear;
end;
end.
сервер:
Код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;
type
TForm2 = class(TForm)
ServerSocket: TServerSocket;
Memo1: TMemo;
Label1: TLabel;
procedure FormActivate(Sender: TObject);
procedure ServerSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.FormActivate(Sender: TObject);
begin
Label1.Caption:=Form1.IdIPWatch1.LocalIP;
ServerSocket.Port:=159;
ServerSocket.Active:=True;
Memo1.Lines.Add('Сервер создан...');
end;
procedure TForm2.ServerSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var nik:string;
begin
nik:=Socket.ReceiveText;
Memo1.Lines.Add('(['+DateToStr(Now)+']:['+TimeToStr(Now)+']) Клиент,'+nik+'подключился');
end;
procedure TForm2.ServerSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var nik:string;
begin
nik:=Socket.ReceiveText;
Memo1.Lines.Add('(['+DateToStr(Now)+']:['+TimeToStr(Now)+']) Клиент, '+nik+' отключился');
end;
procedure TForm2.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
//Memo1.Lines.Add(Socket.ReceiveText);
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ServerSocket.Active:=False;
Form2.Hide;
Form1.Show;
end;
end.
Выводится теперь так: прога.JPG
|