Сетевые технологии. Баканов В.М. - 51 стр.

UptoLike

Составители: 

- 51 -
единицу уменьшается число текущих соединенийчтобы иметь возмож-
ность открыть новые соединения без превышения общего числа оных):
procedure TWbServe.CloseConnection;
begin
{ перед закрытием гнездовое соединение необходимо завершить его }
shutdown(isConnectionSocket, 2);
{ закрыть гнездовое соединение и уничтожить гнездо }
NetSocket.CloseSocketConnection(isConnectionSocket);
if ibFileOpen then { если запрашиваемый файл открыт, закрыть его }
begin
CloseFile(TransferFile);
ibFileOpen := FALSE;
end;
{ уменьшить на единицу число текущих соединений для того, чтобы в будущем
можно было принять больше поступающих запросов на подключение }
iiNumConnected := iiNumConnected -1;
end; { конец CloseConnection }
Приведенные выше процедуры и функции расположены в файле
Wserve.pas, остальные процедуры WEB-сервера тривиальны и в основном на-
правлены на поддержку Delphi-программирования.
Рассматриваемый сервер обслуживает только одно соединение в данный
момент времени, не поддерживает современный протокол HTTP 1.1, в нем
отсутствует поддержка технологий CGI и ISAPI расширения функционально-
сти, средств безопасности и поддержки для аутентификации клиента и шиф-
рования связи, обслуживает запросы на перекачку только ограниченного ко-
личества типов файлов, не имеет средств восстановления при сбоях и др.
Разработка универсального ядра WEB-сервера является трудоемкой задачей,
причем именно здесь отлично проявил себяпринцип открытого кода’ –
лучший WEB-сервер Apache (около 60% применений) совершенствуется
именно таким способом.
Для простой пересылки файлов между удаленными компьютерами удобно
также использовать высокоуровневые компоненты TClientSocket и TServer-
Socket, реализующие клиентский и серверный сокеты соответственно. Также
можно использовать входящие в поставку Delphi компоненты вышеупомяну-
той фирмы NetMasters - TNMMsgServ и TNMMsg (серверная и клиентская час-
ти; компоненты предназначены для обмена текстовыми сообщениями),
TNMStrmServ и TNMStrm (серверная и клиентская части; компоненты предна-
значены для обмена потоками данных) и TNMUDP (компонент, реализующий
протокол UDP - User Datagrаm Protocol, см. RFC768).
единицу уменьшается число текущих соединений – чтобы иметь возмож-
ность открыть новые соединения без превышения общего числа оных):

procedure TWbServe.CloseConnection;
begin
{ перед закрытием гнездовое соединение необходимо завершить его }
 shutdown(isConnectionSocket, 2);
{ закрыть гнездовое соединение и уничтожить гнездо }
 NetSocket.CloseSocketConnection(isConnectionSocket);
if ibFileOpen then { если запрашиваемый файл открыт, закрыть его }
 begin
  CloseFile(TransferFile);
  ibFileOpen := FALSE;
 end;
{ уменьшить на единицу число текущих соединений для того, чтобы в будущем
  можно было принять больше поступающих запросов на подключение }
 iiNumConnected := iiNumConnected -1;
end; { конец CloseConnection }

   Приведенные выше процедуры и функции расположены в файле
Wserve.pas, остальные процедуры WEB-сервера тривиальны и в основном на-
правлены на поддержку Delphi-программирования.
  Рассматриваемый сервер обслуживает только одно соединение в данный
момент времени, не поддерживает современный протокол HTTP 1.1, в нем
отсутствует поддержка технологий CGI и ISAPI расширения функционально-
сти, средств безопасности и поддержки для аутентификации клиента и шиф-
рования связи, обслуживает запросы на перекачку только ограниченного ко-
личества типов файлов, не имеет средств восстановления при сбоях и др.
Разработка универсального ядра WEB-сервера является трудоемкой задачей,
причем именно здесь отлично проявил себя ‘принцип открытого кода’ –
лучший WEB-сервер Apache (около 60% применений) совершенствуется
именно таким способом.
  Для простой пересылки файлов между удаленными компьютерами удобно
также использовать высокоуровневые компоненты TClientSocket и TServer-
Socket, реализующие клиентский и серверный сокеты соответственно. Также
можно использовать входящие в поставку Delphi компоненты вышеупомяну-
той фирмы NetMasters - TNMMsgServ и TNMMsg (серверная и клиентская час-
ти; компоненты предназначены для обмена текстовыми сообщениями),
TNMStrmServ и TNMStrm (серверная и клиентская части; компоненты предна-
значены для обмена потоками данных) и TNMUDP (компонент, реализующий
протокол UDP - User Datagrаm Protocol, см. RFC768).


                                    - 51 -