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


         

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


  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ответствующую адресу локального компьютера.
Теперь имеется серверный процесс, способный переходить в режим приёма соединений и принимать запросы на установку соединений. Рассмотрим, как клиент должен обращаться к серверу.

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