日期:2014-05-17  浏览次数:20694 次

JAVA的socket应用上的疑问,请高手帮帮忙,谢谢!
在局域网内的192.168.1.X机子上部署了一个Socket服务端 监听端口为10247
我在局域网的另一台电脑上部署了Socket客户端,通过Socket skt = new Socket(“192.168.1.X”, 10247)可以进行通信

现在我有一个固定的域名,通过域名+端口能远程连接到192.168.1.X的电脑,比如
使用windows的远程桌面,地址输入www.xxx.com:7001就能远程连到192.168.1.X

若我现在把Socket客户端部署到外部网的其他电脑,如何通过Socket 与192.168.1.X上的服务端进行通信?



小弟刚刚学习Socket ,百度,谷歌也翻了许多,还是不能解决,请大神们帮帮忙!!

------解决方案--------------------
服务端放到外网
------解决方案--------------------
一样的只是把IP改为域名。
Socket socket = new Socket("www.google.com.hk", 80);

Socket skt = new Socket(“www.xxx.com”, 7001)
------解决方案--------------------
那你需要先确认下在外网可不可以通过telnet访问10247这个端口 telnet www.xxx.com 10247
如果可以使用Socket skt = new Socket(“www.xxx.com”, 10247)如果不行要问下网官,可能10247给防火墙关掉了
------解决方案--------------------
在服务器网关做个端口映射到你需要的端口就可以跟使用域名加端口的方式连接了
------解决方案--------------------
要确答端口号是开的,并且没有被占用。
------解决方案--------------------
www.xxx.com:7001 这个意思表示通过7001这个端口去连接www.xxx.com
Socket skt = new Socket(“www.xxx.com”, 10247)表示通过10247这个端口去连接www.xxx.com

7001连接的上说明已经做了端口映射了,你需要把10247也做相应的映射
------解决方案--------------------
在局域网与外网的路由器上,把局域网内pc的10247端口映射到外网IP的一个端口上
然后,Socket skt = new Socket(“www.xxx.com”, 10247)
找你们的的网管人员即可处理
------解决方案--------------------
Socket skt = new Socket(“www.xxx.com:7001”, 10247)
映射10247端口到外网,Socket skt = new Socket(“www.xxx.com”, 10247)这样就能连了