为什么我需要至少两个套接字来处理http连接?

时间:2016-01-24 16:38:19

标签: freepascal

我找到了对simple web server at free pascal documentation的描述。 示例代码使用两个套接字:listenerSocket和connectionSocket。为什么?我认为应该足够了。

ListenerSocket := TTCPBlockSocket.Create;
ConnectionSocket := TTCPBlockSocket.Create;

ListenerSocket.CreateSocket;
ListenerSocket.setLinger(true,10);
ListenerSocket.bind('0.0.0.0','1500');
ListenerSocket.listen;

repeat
  if ListenerSocket.canread(1000) then
  begin
    ConnectionSocket.Socket := ListenerSocket.accept;
    AttendConnection(ConnectionSocket);
    ConnectionSocket.CloseSocket;
  end;
until false;

ListenerSocket.Free;
ConnectionSocket.Free;

0 个答案:

没有答案