当前位置: 代码迷 >> J2EE >> win7 运行socket程序报错解决思路
  详细解决方案

win7 运行socket程序报错解决思路

热度:6504   发布时间:2013-02-25 21:40:43.0
win7 运行socket程序报错
本帖最后由 c493177979 于 2010-12-28 18:15:55 编辑

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 再找找看这个进程是谁。
  相关解决方案