永发信息网

怎么写一个socket编程,不管是udp的还是tcp的,可以不在同一个局域网中通信?

答案:3  悬赏:70  手机版
解决时间 2021-03-17 16:21
  • 提问者网友:难遇难求
  • 2021-03-16 16:58
怎么写一个socket编程,不管是udp的还是tcp的,可以不在同一个局域网中通信?
最佳答案
  • 五星知识达人网友:狂恋
  • 2021-03-16 17:32
网络通讯很简单的道理 通许必须有一方是公网地址 这个所谓的公网地址简单理解就是互联网上公开的地址,能够背直接访问的IP地址
那么你如果想实现中国到美国的通讯(下面简称2方通讯)方法有一下几种
方法1:
中国这边或者美国那边至少一方是具有公网IP地址的 具有公网地址的作为服务端 另外一方作为客户端连接(具体实现就是公网一方监听自己的公网地址上的某个端口 客户端直接连接对方的公网地址跟端口即可)( A<=====>B(公网地址) )
方法2:
2方都具有公网地址 那就更简单 互相连接对方的公网地址跟端口即可(A(公网)<======>B(公网))
方法3:
2方都没有公网地址(但是其中一方或者双方都能在路由器上做端口映射 这个问题就转化成了方法2 或者方法1)(A(端口映射)<===========B)
方法4:
2方都没有公网地址也无法做端口映射 这个时候就要假设一个中转的服务器 2方都去连接那个中转服务器 通过服务来转发消息(A(内网)<===============(消息中转服务器)============>B(内网))
目前QQ就是用的这样的消息传送方式追问需要去买一个公网的ip地址吗???追答一方能做端口映射是最好也是最便宜的做法了 2边都没办法做的话 只能购买一个很便宜的主机空间作为中转服务器了
有一个中转服务器可以实现离线留言的功能貌似好像普通的托管主机不支持.exe程序的执行追问怎么端口映射啊???在程序里写,还是配置路由器追答在路由器里面 或者在你的网关电脑上配置一条静态路由追问我的网络貌似 已经路由了n边了 。。。映射有用吗?追答看看你电脑有没有防火墙先关一下追问我的意思是说,我现在主机上的ip地址,从真正的接入互联网的那根线到我的电脑这 ,不知道被“路由”了几次,才分过来的,我要是映射端口,能映射到互联网上吗?追答每一级都要做映射,按你说的情况你应该是内网中内网的内网
全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-03-16 20:04
主要是利用了路由器的映射关系,而两个路由器之间的通讯对你是没有关系的,也就是黑盒原理!你只要有一个公网的服务器就可以,1、一种是客户端连接服务器进行通讯,服务器转发2、是服务器把两个通讯客户端的路由映射发给对方,并维护这个路由器映射,这样两个客户端可以相互通讯!!!
  • 2楼网友:何以畏孤独
  • 2021-03-16 19:03
需要有一个登陆服务器,不管客户端在哪里登陆后,会在服务器登记其IP和端口,其用户端需要联系对方时,可将消息现发给服务器,由服务器转发对方;或者从服务器获取对方的ip和端口,直接发送过去。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯