例如,如果客户端在http://socketplaceonnet.com上侦听套接字,它如何知道有新内容?我假设服务器无法直接向客户端发送数据,因为客户端可能位于路由器后面,没有端口转发,因此无法进行直接连接.cliet可能是一个改变它的ip地址的手机,所以我理解为了让客户端成为一个监听器,服务器不需要知道clint的ip.
谢谢
Dav*_*dek 74
客户端套接字不侦听传入连接,它启动到服务器的传出连接.服务器套接字侦听传入连接.
服务器创建套接字,将套接字绑定到IP地址和端口号(对于TCP和UDP),然后侦听传入连接.当客户端连接到服务器时,会创建一个新的套接字以与客户端进行通信(仅限TCP).轮询机制用于确定是否在任何打开的套接字上发生了任何活动.
客户端创建套接字并连接到远程IP地址和端口号(用于TCP和UDP).可以使用轮询机制(select(),poll(),epoll()等)来监视套接字以获取来自服务器的信息,而不会阻塞线程.
在客户端位于提供NAT(网络地址转换)的路由器后面的情况下,路由器重写客户端的地址以匹配路由器的公共IP地址.当服务器响应时,路由器将其公共IP地址更改回客户端的IP地址.路由器保留一个正在转换的活动连接的表,以便它可以将服务器的响应映射到正确的客户端.
| 归档时间: |
|
| 查看次数: |
14043 次 |
| 最近记录: |