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


         

что использование вызова fork позволяет


    if fork = 0 then
    begin
      (* Принимает данные *)
      while recv (newsockfd, c, 1, 0) > 0 do
      begin
        (* Преобразовывает строчный символ в прописной *)
        c := upcase (c);
        (* Пересылает символ обратно *)
        send (newsockfd, c, 1, 0);
      end;
    end;
  end;
end.
Напомним, что использование вызова fork позволяет серверу обслуживать несколько клиентов. Цикл работы клиентского процесса может быть реализован так:
(* Клиентский процесс *)
var
  sockfd:longint;
  c,rc:char;
begin
  (* Приведенная выше инициализация сокета и запрос
   * на установку соединения *)
  (* Обмен данными с сервером *)
  rc := #$a;
  while true do
  begin
    if rc = #$a then
      writeln ('Введите строчный символ');
    c:=char(getchar);
    send (sockfd, c, 1, 0);
    recv (sockfd, rc, 1, 0);
    write (rc)
  end;
end.

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