自己写了一个ServerSocket服务器和android socket客户端,在虚拟机上运行成功了,能和服务器收发信息,两台虚拟机之间也能正常通讯,
但是到了真机上之后就没法和服务器之间通讯了,后来查了资料才知道原来我的ip是内网ip,不能被公网访问,别人说要做个端口映射才能被公网访问,这下问题来了:
我的内网ip是110.64.89.91,那我用花生壳建立端口映射应该怎么设置?
Server的端口假设是50000,那端口映射的端口应该设置成多少?完全不懂这方面知识啊,然后花生壳会给我一个新的外网访问地址,可是外网Ip没给我啊,我的客户端新建Socket的时候ip应该填多少啊……
要疯了,破问题弄了一个星期了还是没用,求大神解答!
首先你的服务器必须在有外网IP的服务器上才行
你的两台虚拟机是因为都在同一个局域网内,,所以可以访问
这是TCP/IP协议的问题
你的花生壳不能放在你的内网上做映射,,应该放在网关上才行,,关键是你有网关的权限??假如你有的话你直接把你的程序放到网关上不用映射也可以了
想把自己的服务挂在外网,就必须申请域名服务器,否则是行不通的,域名服务器是需要money的
如果只是测试的话,直接在网关(路由器)上设置端口映射不就好了。。