gpt4 book ai didi

sockets - 监听套接字的工作原理

转载 作者:行者123 更新时间:2023-12-03 10:32:04 27 4
gpt4 key购买 nike

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

谢谢

最佳答案

客户端套接字不监听传入连接,它启动到服务器的传出连接。服务器套接字监听传入连接。
服务器创建一个套接字,将套接字绑定(bind)到 IP 地址和端口号(用于 TCP 和 UDP),然后监听传入连接。当客户端连接到服务器时,会创建一个新套接字用于与客户端通信(仅限 TCP)。轮询机制用于确定是否在任何打开的套接字上发生了任何事件。
客户端创建一个套接字并连接到远程 IP 地址和端口号(用于 TCP 和 UDP)。可以使用轮询机制(select()poll()epoll() 等)在不阻塞线程的情况下监视来自服务器的套接字信息。
在客户端位于提供 NAT(网络地址转换)的路由器后面的情况下,路由器会重写客户端的地址以匹配路由器的公共(public) IP 地址。当服务器响应时,路由器将其公共(public) IP 地址更改回客户端的 IP 地址。路由器保留一个它正在转换的事件连接表,以便它可以将服务器的响应映射到正确的客户端。

关于sockets - 监听套接字的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10861556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com