当前位置: 首页 > 知识库问答 >
问题:

Web服务器如何处理同一端口上的多个连接[重复]

辛星宇
2023-03-14

传输控制协议由[客户端IP地址:传出端口-服务器IP地址:传入端口]定义。Web服务器在一个端口上侦听,但在同一个端口上处理多个tcp连接——这是如何实现的?一个连接是否以某种方式转移到其他传入端口,以便能够监听新连接?

共有1个答案

越季萌
2023-03-14

即使服务器IP和服务器端口相同,客户端IP或客户端端口也不同。所以从TCP的角度来看,没有问题。

如果您想了解更多详细信息,在服务器代码中有一个用于接受连接的套接字,这将是侦听套接字,它将绑定到服务器端口(也可以选择绑定到IP)。当客户端连接到此端口时,侦听套接字将接受它,并返回一个新连接的套接字。

即使所有服务器套接字使用相同的端口,实际上也只有一个在侦听,因此没有问题。

 类似资料:
  • 问题内容: 当使用Socket类时,它正在某个端口上建立与服务器的TCP连接,但是ServerSocket能够在服务器上为每个接受请求处理多个客户端连接,并将其委托给线程来处理该请求。但是ServerSocket类如何在同一个端口上接受多个tcp连接。 这是否意味着要由操作系统来决定它允许多少个连接,或者允许的最大积压量是多少,并且可以由OS之上的应用程序控制(我的意思是Java受OS支持的最大积

  • (这个问题的灵感来自对此线程的响应:WebSocket 服务器如何处理多个传入的连接请求? 我的理解是这样的: 假设客户端 IP = 1.1.1.1,服务器 IP = 9.9.9.9 > 浏览器选择一个随机的本地可用端口,例如 5555,并启动与服务器端口 80 的连接。因此,在客户端上,应表示 IP 连接,例如 (1.1.1.1 服务器在其端口80上调用并识别来自客户端的连接请求。然后服务器选择

  • 另一个遗留支持问题 我们有一个服务器多客户端网络,其中每个组件都有一个自签名证书,并添加到服务器/客户端的信任存储中。我们这里不使用证书颁发机构 现在我们的问题是,我们需要升级所有证书以提高安全性。新的客户端将带有新的证书,甚至服务器也将具有新的证书<我们的问题是如何处理老客户。升级旧客户的密钥库是最后的手段。 不起作用的事情: > 为新客户端使用新端口:我们考虑为新客户端使用新端口,并为旧客户端

  • 我想在我的web服务器上运行多个非集群垂直市场。每个verticle由一个单独的进程/命令行启动,并为同一个主机和具有唯一路由的同一个端口创建自己的HTTP服务器(vertx.createHttpServer)。然而,这似乎不起作用,因为在开始一个垂直之后,所有进一步的垂直抛出一个BindException“地址已经在使用中”。 作为Vert. x的新手,我只能想到两种方法来通过这个考试: < l

  • 我知道在Netty4中,一旦建立了一个通道,该通道的所有事件处理都在分配给特定EventLoop的同一个线程上完成。此绑定在通道创建时完成。 我不明白的部分是,实际需要多少线程来接受新连接、创建新通道和进行绑定?

  • 从我的应用程序中,我需要配置多个需要连接到单个服务器的客户端连接。为此,我使用Application Context BeanFactory创建了可变数量的bean,具体取决于我配置了多少客户端。这是2个客户端的代码: 这是我的工厂方法: 当我运行程序时,两个客户端都连接到我的服务器。然而,一旦服务器将其第一个有效负载发送到每个客户端,我就会得到以下异常(每个客户端一个): 这个想法是数据将被读取