while(over_time<tryTimes){
if(socket==null || socket.isClosed()){
socket=new Socket(IP,port);
}
setSendString(pkg);
sendData();
long start=System.currentTimeMillis();//开始时间
while(getReturnData().equals("") || getReturnData()=="" || getReturnData()==null)
{
Thread.sleep(threadWaitTime);//线程等待时间
if(!(getReturnData().equals("") || getReturnData()=="" || getReturnData()==null)){
setOperateResult(true);
closeSocket();
over_time=tryTimes;
break;
}
long now=System.currentTimeMillis();//现在时间
if((now-start)>=overtime){
setInfoString("连接超时,服务器无返回!");
setOperateResult(false);
break;
}
}
over_time++;
}
发生异常:
java.net.BindException: Address already in use: NET_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:398)
at java.net.Socket.bind(Socket.java:582)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:207)
环境tomcat5+ibm1.5jdk,不知道是什么原因,重启机器第一次可以正常连接,第二次连接就出现上述异常。帮忙解决一下啦。谢谢!
路过、、、、、、、、、、这个不是 java 的问题,你在使用一个正在被占用的端口号。
java.net.BindException: Address already in use: NET_Bin
用 cmd 检测一个端口列表。
C:\> netstat -ano 也许时win7 安全机制 太高 你试试关闭些 安全机制得东西 如:防火墙 等 或者 拿到 XP系统上试试 方法一:查看进程,把重复使用的端口停掉。
方法二:改端口,最好是比较大一点的比如 9999
find ":你的端口号"
这个命令返回的结果中包括一个进程号 (pid),用这个 pid 再找找看这个进程是谁。