Системное программирование в UNIX средствами Free Pascal



         

Описание - часть 2


  if not bind (sockfd, server, SIZE) then

  begin

    perror ('Ошибка вызова bind');

    halt (1);

  end;

  (* Включает прием соединений *)

  if not listen (sockfd, 5) then

  begin

    perror ('ошибка вызова listen');

    halt (1);

  end;

  while true do

  begin

    (* Принимает очередной запрос на соединение *)

    newsockfd := accept (sockfd, client, clientaddrlen);

    if newsockfd = -1 then

    begin

      perror ('Ошибка вызова accept');

      continue;

    end;

    (*

    Создает дочерний процесс для работы с соединением.

    Если это дочерний процесс,

      то в цикле принимает данные от клиента

      и посылает ему ответы.

    *)

  end;

end.

Обратите внимание на то, что сервер использует константу INADDR_ANY, coответствующую адресу локального компьютера.

Теперь имеется серверный процесс, способный переходить в режим приёма соединений и принимать запросы на установку соединений. Рассмотрим, как клиент должен обращаться к серверу.




Содержание  Назад  Вперед