unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,winsock, Vcl.StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
inf:TWSADATA;
socks,sockc,i,z:integer;
sockaddr:TSockAddr;
s: array[0..100] of Char;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
//инициализируем библиотку
WSAStartup($202,inf);
//присваиваем переменной протокол
socks:=socket(AF_INET,SOCK_STREAM,0);
//адресс сервера
SockAddr.sin_family:=AF_INET;
SockAddr.sin_port:=htons(21);
SockAddr.sin_addr.S_addr:=htonl(INADDR_ANY);
//размер адресса сокета
i:=sizeof(sockaddr);
//привязываем структуру к сокету
Bind(socks,SockAddr,sizeof(SockAddr));
//прослушиваем порт
Listen(Socks,3);
while true do
begin
sockc:=accept(socks,@sockaddr,@i);
if sockc<>-1 then
begin
z:=recv(sockc,s,100,0);
if z<>-1 then
ShowMessage(s);
end;
end;
end;
end.
Клиент :
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,winsock, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
inf: TWSADATA;
socks: integer;
sockaddr: TSockAddr;
Server:TInaddr;
s: array[0..100] of Char;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
//присоединяемся к серверу
connect(socks,sockaddr,sizeof(sockaddr));
//тправка сообщения
s:='Test';
if connect(socks,sockaddr,sizeof(sockaddr))<>-1 then
begin
send(socks,s,Length(s),0);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//подключаем адресс сервера
Server.S_addr:=inet_addr(PAnsiChar('127.0.0.1'));
//инициализируем библиотку
WSAStartup($202,inf);
//присваиваем переменной протокол
socks:=socket(AF_INET,SOCK_STREAM,0);
//адресс клиента
SockAddr.sin_family:=AF_INET;
SockAddr.sin_port:=htons(21);
sockaddr.sin_addr := Server;
end;
end.