易截截图软件、单文件、免安装、纯绿色、仅160KB

java Socket与外网通信

我写了个Server端和Client端,当我用内网地址(192.168.1.*)连接Server端可以通信,当我把Server端放在服务器上时,并试图通过外网地址,即用真实的网络地址(211.67.243.*)连接服务器时,为何;连接不上去呢,
请问大家该怎么解决呢?

谢谢了
贴异常代码出来啊?
不能连接服务器的异常多了,我知道是那个。

可能是丢包太严重,所以连不上去

看你的server端绑定的是哪个地址吧,如果绑定的不是所有地址,那应该是连不上的。

引用
贴异常代码出来啊?
不能连接服务器的异常多了,我知道是那个。


具体错误时这样的,

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.DataInputStream.read(DataInputStream.java:83)
at com.love999.clienttest.connect.ConnectThread.run(ConnectThread.java:44)
at java.lang.Thread.run(Thread.java:619)


一台机器模拟350个客户端,一台机器连接服务器没有错误,三台机器同时连接服务器时就会出现上面的错误了

当然了,你的Server端抗不了那么多负载,你最好优化下Server端程序,比如考虑下线程池,或者直接用mina框架做

我说一句:检测端口。。

我建议你检查一下作为服务器的机子开的那个端口号有没有被其他程序占用。

引用
引用 1 楼 hui135 的回复:贴异常代码出来啊? 不能连接服务器的异常多了,我知道是那个。

具体错误时这样的,

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(


相关问答:

怎么用Java实现定时执行某程序 - Java / Java SE

我想用Java写一个程序,就是我想在运行代码后,在指定的时间打开某程序,例如我运行代码后,讲在12:00打开"D:\Program Files\Tencent\QQ2009\Bin\QQ.exe"这个程序,求高人指点。还有可能的话在指定的时间 ......

java日期处理 - Java / Java SE

当知道一个日期,如何把这个日期所在旬的前后两个日期取出
比如输入20090905,就输入20090901 20090910
输出20090901 20090910

取得天数后作一下判断再把这个方法用下void set(int field, int value)  
......

java程序连接SQlServer的问题 - Java / Java SE

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class QueryTest&n ......

eclipse java 控制台 - Java / Java SE

怎么在控制台中输入类似下面的信息:
 s1234 50  
  s1235 80  
  s1234 90  
  s1234 40  
  s1236 90  
每当回车时 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号