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

如何收听套接字

司马羽
2023-03-14

如果客户端侦听套接字,则在http://socketplaceonnet.com例如,它如何知道有新内容?我假设服务器无法直接向客户端发送数据,因为客户端可能位于路由器后面,没有端口转发,因此无法直接连接。客户端可能是一部移动电话,可以更改其IP地址。我理解,要让客户端成为侦听器,服务器不需要知道客户端的IP。

非常感谢。

共有2个答案

禄星腾
2023-03-14

TCP迭代服务器接受客户端的连接,然后对其进行处理,完成来自客户端的所有请求,然后断开连接。TCP迭代服务器一次只能处理一个客户端的请求。只有当客户端的所有请求都得到满足时,服务器才能继续后续的请求。如果一个客户端占用服务器,其他客户端就无法工作,因此TCP服务器很少使用迭代服务器模型

楮庆
2023-03-14

客户端套接字不侦听传入连接,而是启动到服务器的传出连接。服务器套接字侦听传入的连接。

服务器创建套接字,将套接字绑定到IP地址和端口号(用于TCP和UDP),然后侦听传入的连接。当客户端连接到服务器时,会创建一个新的套接字,用于与客户端通信(仅限TCP)。轮询机制用于确定任何打开的套接字上是否发生了任何活动。

客户端创建套接字并连接到远程IP地址和端口号(用于TCP和UDP)。可以使用轮询机制(select()poll()epoll()等)监视套接字以获取来自服务器的信息,而不会阻塞线程。

如果客户端位于提供NAT(网络地址转换)的路由器后面,路由器会重新写入客户端的地址,以匹配路由器的公共IP地址。当服务器响应时,路由器将其公共IP地址更改回客户端的IP地址。路由器保留一个表,其中包含它正在转换的活动连接,以便将服务器的响应映射到正确的客户端。

 类似资料:
  • 问题内容: 我有一个。当用户在更改时按下键时,我会tp做点什么。我怎样才能做到这一点? 最简单的方法: 问题答案: 文本观察器的示例代码

  • 注意:根据我的理解和观察,没有办法在journald配置文件中进行配置。

  • 我试图通过Windows服务从套接字接收数据,但当我建立连接时,它会立即生效。我希望不断地接收它(当端口关闭时,它将断开连接)。我怎样才能做到这一点? 这是我现在的输出; “GET/HTTP/1.1 主持人:127.0.0.1:1994 连接:保持活力 缓存控制:最大年龄=0 升级-不安全-请求: 1 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)Apple

  • socket_read和socket_recv之间有什么区别?我正在尝试使用PHP套接字,但使用socket_read时收到了以下警告: 请帮帮我!

  • 问题内容: 对于linux c编程原始套接字,这是一个快速的问题。如果我只想使用原始套接字来监听任何接口,我是否真的必须绑定到ip地址或接口来监听流量?据我了解,我觉得我应该能够只调用sock();。然后启动recvfrom()流量。也许我错了,但是我看过一些不使用它的程序。 问题答案: 没错,您唯一需要做的就是打电话给then 。不过请注意,使用收听存在一些限制。 如果您不是在“发送后忘记”的基

  • 我必须对FTP服务器进行编码,而且我在数据传输方面遇到了问题。 我在linux上使用ftp命令来测试它,我目前正在使用,它发送工作目录中的文件/目录列表。一切正常(ftp打印文件列表),除了ftp打印以下警告: 我想删除该警告,我认为ftp需要二进制数据,但我不知道如何通过套接字发送这样的数据,我目前正在使用最基本的方式发送结果: