Home Plug-ins TTCPBlockSocket

Вы можете создавать TCP соединения как клиентские так и быть сервером.
Можете получать и отправлять данные в любые другие приложения, почту и т.д. (куда угодно).
Например, можно запустить 2 бота на разных компах один будет сервером, а второй клиентом, и они смогут общаться между собой с помощью TCP соединения.
Необходимо подключить соответствующий модуль в разделе uses:  uses TCP;


НазваниеРезультатОписание
Create -
Delphi
constructor Create;
Destroy -
Delphi
destructor Destroy; override;
CloseSocket -
Delphi
procedure CloseSocket; override;
WaitingData Integer
Delphi
function WaitingData: Integer; override;
Listen -
Delphi
procedure Listen; override;
Accept Integer
Delphi
function Accept: Integer; override;
Connect -
Delphi
procedure Connect(IP, Port: string); override;
SendBuffer Integer
Delphi
function SendBuffer(Buffer: pointer; Len: integer): Integer; override;
RecvBuffer Integer
Delphi
function RecvBuffer(Buffer: pointer; Len: integer; Timeout: integer): Integer; virtual;
SendByte -
Delphi
procedure SendByte(Data: byte); virtual;
RecvByte Byte
Delphi
function RecvByte(Timeout: integer): byte; virtual;
SendString -
Delphi
procedure SendString(Data: ansistring); virtual;
RecvString AnsiString
Delphi
function RecvString(Timeout: integer): AnsiString; virtual;
SendInteger -
Delphi
procedure SendInteger(Data: integer); virtual;
RecvInteger Integer
Delphi
function RecvInteger(Timeout: integer): Integer;
LastError Integer
Delphi
property LastError: Integer;

Пример

uses Classes, TCP;
var
  Head: TStringList;
  Socket: TTCPBlockSocket;
  i: integer;

procedure OnFree;
begin
  Head.Free;
  Socket.Free;
end;
  
begin
  Head:= TStringList.Create;
  Head.Add('GET / HTTP/1.1');            //Создаем запрос, который пошлем серверу
  Head.Add('Accept: */*');
  Head.Add('Accept-Encoding: gzip, deflate');
  Head.Add('Host: www.google.ru');
  Head.Add('Connection: Keep-Alive');
  Head.Add(#10#13);

  Socket:= TTCPBlockSocket.Create;      //Создаем сокет
  Socket.connect('173.194.71.94', '80'); //конектим www.google.ru
  if (Socket.LastError <> 0) then Exit;    //Если произошла ошибка, выходим
  Socket.SendString(Head.Text);          //Отправляем наши данные

  Head.Clear;
  Head.DelimitedText := Socket.RecvString(5000); //Получаем ответ
  for i := 0 to Head.Count-1 do                  //Показываем ответ 
    print(Head.Strings[i]);
end.