基于Socket的通信,如何实现广域网的通信?

 我来答
jamxval
2012-11-22 · TA获得超过6823个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1440万
展开全部
对于 TCP 来说局域网和广域网不是一样嘛。
只要给个 IP 地址就行了。至于如何连接到那机器,那是路由器管理与配置的问题,跟我们编程没什么关系。

比如你家和公司各有一个路由器,各有一台电脑在对应的路由器后面连接着,那你需要在两台路由器上各创建一个 NAT,比如:
家->公司:VNC,公司->家:3389远程桌面,那你在公司的路由器上创建一个 NAT 把 5900 端口转发到公司PC:5900 端口,这样家里就能访问公司PC的 VNC 服务器了,对应地在家的路由器创建 NAT 把 3389 端口转发到家PC:3389 端口上,那从公司就可以直接访问家PC的远程桌面了。

这一切都是网络管理路由器的配置工作,跟编程没有关系。
更多追问追答
追问
客户端的路由需要配置,意味着安装需要派遣专业人员。
可是QQ和网游是怎么做到,安装就能使用的呢?
追答
像网游只需要服务器端配置就行了,因此只有客户端连接服务器,没有服务器连接到客户端。QQ一般的聊天也是这样的,另外当 QQ 发现两个在同个局域网的人想传送文件,它会告诉彼此对方的局域网 IP 然后叫他们俩直接在局域网传送文件。而在公网上传送就不能这样,只能中传一下,就是让俩人都连接到服务器然后服务器把两个客户端串接起来。
百度网友ffa04dc
2012-11-22
知道答主
回答量:27
采纳率:0%
帮助的人:16.7万
展开全部
我只能从理论上告诉你,希望你能明白~
首先,主机地址必须是静态的,也就是固定的。这样客户端才能及时的找到你。由于网络的复杂性,一个IP地址可能有多台主机,所以需要一个类来解析数据报的报头。从而建立起通信,(TCP/IP:应该是三次握手,UDP:是直接发送)当通信建立起来,一切都简单明了了。关键在于客户端地址的封装,以及重新发送消息。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式