(* Клиентский процесс *)
uses sockets,stdio,linux;

const
  SIZE=sizeof(tinetsockaddr);
  server:tinetsockaddr=(family:AF_INET; port:7000);

var
  sockfd:longint;
  c,rc:char;

begin
  (* Преобразовать и сохранить IP address сервера *)
  server.addr := inet_addr ('127.0.0.1');

  (* Установить абонентскую точку сокета *)
  sockfd := socket (AF_INET, SOCK_STREAM, 0);
  if sockfd = -1 then
  begin
    perror ('Ошибка вызова socket');
    halt (1);
  end;

  (* Подключить сокет к адресу сервера *)
  if not connect (sockfd, server, SIZE) then
  begin
    perror ('Ошибка вызова connect');
    halt (1);
  end;

  (* Обмен данными с сервером *)
  rc := #$a;
  while true do
  begin
    if rc = #$a then
      writeln ('Введите строчный символ');

    c:=char(getchar);
    send (sockfd, c, 1, 0);

    if recv (sockfd, rc, 1, 0) > 0 then
      write (rc)
    else
    begin
      writeln ('Сервер не отвечает');
      fdclose (sockfd);
      halt (1);
    end;
  end;
end.
