Показать сообщение отдельно
  #9  
Старый 07.03.2012, 18:12
F1zLe F1zLe вне форума
Прохожий
 
Регистрация: 29.12.2011
Сообщения: 20
Репутация: -440
По умолчанию

Кароче сделал я этот проект на XE2 b и нехера не работает

Сервер :
Код:
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.
Админ: Пользуемсяя тегами для оформления кода!
Ответить с цитированием