感谢你浏览我的问题,情况是这样的,我用Socket和ServerSocket实现了一个局域网通信的程序,最开始时服务端的IP(在我的电脑上)是192.168.2.3,端口号是7788,这个在局域网内的不同机器上可以进行通信。现在我把服务端移到一台主机上,因为我们实验室有一台主机放着一个网站,所以是24小时开着的,网址我不写了,Socket连接时我使用的是InetAddress.getByName(/*这里是网址*/);端口号仍为7788不变。重新编译后,我在主机上运行服务端,正常运行,然后在自己的电脑上运行客户端,连接正常,我使用ping该网址时也没有发生丢包现象。但是在我寝室的电脑上运行客户端时却无法连接至客户端,提示“连接超时”,并且ping该网址时数据%100丢失,而浏览器仍能打开该网址。希望我把问题描述清楚了,简单地说,局域网内能连接主机,但外网却不能。我试过让主机的防火墙允许7788号端口入站,问题仍未解决,希望大家能帮忙想想办法,是不是我还有哪个地方有疏漏?
谢谢!
谢谢!
解决方案 »
- 我想实现下面这样一个需求,具体实现请大家给个思路。
- 该学什么了?
- 关于html:select的问题
- java实现文件检索转换功能
- 判断连续0的个数
- 请教一个提取网页标题的问题~
- java与c++比较哪个功能更强?
- java 调用本地刻录机或者远程刻录机,将制定路径的文件刻录到光盘中,用nero
- 高薪诚聘Java兼职教师(英文/中文),每周8课时,地点在天津。联系邮件:[email protected]
- 怎么从Applet获知网页被刷新了,或者在刷新前通知Applet
- System.out.println()跟System.out.print("\n")一样的吗?
- ★★:preparestatement 到底是如何防止注入的?
如果服务器是在路由后面的话,需要把路由的端口映射给服务器。你用 telnet 域名 7788 试试看有没有反应
telnet 域名 7788
运行提示:不能打开到主机的连接,在端口7788连接失败。我已经新建入站规则,允许端口7788的连接,可是为什么还会出现这个提示呢?
我不知道怎么判断服务器是单网卡还是多网卡的,是不是运行ipconfig /all就能查看呢?如果你需要这个信息的话我可以贴出来。实验室的电脑共用一个IP,服务器电脑独立一个IP,就是说服务器的电脑是不经过路由的。这两个IP只有最后一位是不同的,一个是*.*.*.226,一个是*.*.*.228。今天早上我在寝室的电脑上将网线不通过路由直接连到电脑上,此时它不与其他电脑共享IP,运行该程序后仍不能连接,这个现象让我很疑惑,因为现在服务器和客户端都用的是独立的IP,可为什么还是无法通信呢?这个问题已经困扰了我两天了,一直没研究明白,希望能继续得到大家的回复,早点把问题解决,谢谢!