Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 是否为每个请求创建了新套接字?_Sockets_Tcp_Network Programming - Fatal编程技术网

Sockets 是否为每个请求创建了新套接字?

Sockets 是否为每个请求创建了新套接字?,sockets,tcp,network-programming,Sockets,Tcp,Network Programming,我正试着把我的头绕在网络插座上。到目前为止,我的理解是服务器创建一个绑定到特定端口的新套接字。然后它监听这个套接字来处理客户机请求 我读过这个教程,它说 如果一切顺利,服务器将接受连接。一经接受, 服务器获得绑定到同一本地端口的新套接字,并且还具有 其远程端点设置为客户端的地址和端口。它需要 一个新的套接字,以便它可以继续侦听原始套接字的 连接请求,同时满足连接客户端的需要 有几件事我不太明白 如果一切顺利,服务器将接受连接 这是否意味着客户端请求成功到达侦听套接字 接受后,服务器将获得一个绑定

我正试着把我的头绕在网络插座上。到目前为止,我的理解是服务器创建一个绑定到特定端口的新套接字。然后它监听这个套接字来处理客户机请求

我读过这个教程,它说

如果一切顺利,服务器将接受连接。一经接受, 服务器获得绑定到同一本地端口的新套接字,并且还具有 其远程端点设置为客户端的地址和端口。它需要 一个新的套接字,以便它可以继续侦听原始套接字的 连接请求,同时满足连接客户端的需要

有几件事我不太明白

如果一切顺利,服务器将接受连接

  • 这是否意味着客户端请求成功到达侦听套接字
  • 接受后,服务器将获得一个绑定到同一本地端口的新套接字,并且 还将其远程端点设置为客户端的地址和端口

  • 将创建新套接字。它还绑定到同一端口,但不侦听传入的请求。在服务器处理后,客户端请求响应被写入该套接字,然后它被关闭。对吗

  • 这是否意味着请求以某种方式从第一个套接字传递到第二个套接字

  • 它需要一个新的套接字,这样它就可以继续收听原始音频 用于连接请求的套接字,同时满足连接客户端的需要

  • 因此,将创建一个新的套接字来侦听传入的请求。有不同类型的插座吗?某种“监听”插座和其他

  • 为什么服务器必须创建新的侦听套接字?为什么不能重复使用前一个

  • 1) 传入连接已到达 2) 插座无法关闭 3) 有服务器套接字,只有套接字。Server socket.accept在客户端连接时返回套接字对象

  • 否。这意味着传入连接已到达服务器
  • 否。如果服务器关闭它,它将被关闭。不是这样
  • 否。这意味着传入连接会导致完全形成连接,并在服务器上创建一个套接字来表示该连接的服务器端点
  • (a) 否。将创建一个新套接字来接收请求和发送响应。(b) 对。有无源插座和有源插座。被动套接字侦听连接。活动套接字发送和接收数据
  • 它不必创建新的侦听(被动)套接字。它必须创建一个新的活动套接字作为新连接的端点
  • 是否为每个请求创建了新套接字


    大多数协议,例如带有keep alive的HTTP,允许每个连接有多个请求。

    关于1,“服务器接受连接是否意味着客户端请求成功到达侦听套接字?”:接受()的结果是一个工作侦听套接字。@CodeCaster否。接受()的结果是一个正在工作的活动套接字。监听插座是被动插座:参见4(b)。像OP一样,你误用了“倾听”这个词。