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

ServerSocket是否为每个连接创建新的套接字?[副本]

杨君之
2023-03-14

以下是我的问题:

  1. 请纠正我在上面的理解--我通过指定一个端口来打开一个套接字(ServerSocket),比方说8001,现在我的服务器将开始侦听这个端口上的请求,现在它从一个客户端得到一个请求,类似于http://abc:8001/test,所以一旦它接受连接,它将创建一个本地端口,比方说10001,所以现在这个客户端请求将通过10001接受(或者换句话说,与客户端的连接将通过端口10001建立),而8001将再次空闲并侦听新的请求?
  2. 那么,这是否意味着使用serversocket指定的原始端口I永远不会用于建立连接?
  3. 那么,这是否意味着,如果我与客户端有连接(比方说通过9001端口),那么在我正在处理的原始请求完成之前,在同一个9001端口上永远不能再发生一次通信(或者换句话说,建立连接)?

请随时详细介绍这些问题的概念,这不仅对我有帮助,也对未来的访客有帮助。

共有1个答案

邵飞鸿
2023-03-14

serversocket是否为每个连接创建新的套接字?

是的。

我通过指定一个端口来打开一个套接字(ServerSocket),比方说8001,现在我的服务器将开始侦听这个端口上的请求,现在它从客户端获得一个请求,比如http://abc:8001/test,所以一旦它接受连接,它将创建一个本地端口,比方说10001,

没有。

而8001将再次免费并监听新的请求?

是的。

 类似资料:
  • 客户端IP:客户端端口和服务器IP:服务器端口->协议(以区分TCP和UDP) 那么为什么accept()需要返回绑定到不同端口的套接字呢?每个报头中发送的四组信息是否足以区分来自不同机器的到同一服务器端口的多个连接,从而不需要使用服务器机器上的不同端口进行通信?

  • 问题内容: 关于Java中的serversockets,我已经看到了许多与此答案相似的答案:“假设您有一台服务器,其serversocket的端口为5000。客户端A和客户端B将连接到我们的服务器。 客户端A在端口5000上向服务器发送请求。客户端A侧的端口由操作系统选择。通常,操作系统会选择下一个可用的端口。该搜索的起点是先前使用的端口号+ 1(例如,如果操作系统最近碰到了我们的端口45546,

  • 问题内容: 调用一次后如何重新连接到套接字io ? 这是代码 如果我这样做,它会起作用。如果我这样做,它将断开连接。但是,如果我尝试使用重新连接,则连接不再起作用。我如何才能建立连接? 问题答案: 好吧,您可以在这里选择… 首次初始化套接字值时,应使用, 下次(调用一次断开连接后),您应使用再次连接。 所以你的应该是这样的

  • 问题内容: 我正在看下面的代码片段: 从这里:http : //howtonode.org/node-redis- fun 。 我不太了解发生了什么。从示例中,我认为Redis客户端是数据库和程序员之间的某种接口,但现在看来他们正在为每个提交的代码创建一个新客户端(他们在教程中构建的应用程序接受代码段)提交并将其存储在数据库中)! 另外,Redis数据库存储在哪里?与脚本位于同一目录中吗?我该如何

  • 我正在尝试使用Telegram Java API https://github.com/ardock/Telegram-API,我从一些简单的RPC调用开始: 连接失败后,它一次又一次尝试连接,但不是很成功。我不知道是什么原因和如何解决这个问题。也许有人也有同样的问题?我将非常感激你的帮助)

  • 我试图使用VMCI套接字在虚拟机和它的主机之间建立一个面向流的连接。我成功地启动了服务器,绑定了一个地址,将其置于监听模式,并调用接受来等待客户端。然而,每当我从客户端调用时,我都会收到一个错误。 我的客户代码是: 每当我使用数据报套接字时,问题并不存在。(当然,不需要调用listen、accept和connect。在这种情况下,我只需使用