Socket 服务器向客户端发信息问题,请指点。

Helloall 发布于 2015/05/20 13:34
阅读 311
收藏 0

Socket 服务器向客户端发信息问题,请指点。

打个比方,客户端发送给服务器,服务器将数据发会客户端,这在内网来说是相当容易的,但是在外网是不是就不太容易了? 服务器在向客户端发送信息的时候,客户端是收不到的,是不是需要打洞技术实现映射?

加载中
0
harleyliao
harleyliao

不用啊,使用外网的ip就行

比如这个 http://121.40.63.197:8800/hello


harleyliao
harleyliao
回复 @Helloall : 我用的是阿里云的服务器
Helloall
Helloall
你用的是vps吗?
harleyliao
harleyliao
回复 @Helloall : 是的,对应的服务器端代码参考 https://github.com/hongliuliao/simple_server/blob/master/test/http_server_test.cpp
0
莫扎特的代码
莫扎特的代码
不懂什么意思,既然客户端能够connect到外网,那么一定是经过端口映射,服务器在连接后发送数据就好了啊
0
newzai
newzai
如果是TCP,那么客户端需要首先向服务器进行连接,这个连接建立后,TCP的通行链路也就建立了,已经是一个隧道了,无需再打洞。如果是UDP连接,由于路由器的NAT映射时间是有一定的时间,如果超过那个时间没有数据,端口就会被路由器回收,下次发送数据的时候,端口会改变。而且端口被回收了,服务器也不知道,就导致了服务器发送部署到客户端,客户端接收不到的情况,因此在UDP的情况下,客户端如果在内网,肯定需要进行保活的。
返回顶部
顶部