java.net.BindException:Address already in use:JVM_Bind

zhanghuaigong 2009-11-27 01:27:57
一个简单的程序。在 eclipse 运行出现了错误:Exception: java.net.BindException: Address already in use: JVM_Bind。怎么回事?
代码如下:
import java.io.*;
import java.net.*;
import java.util.*;

/**
This program implements a simple server that listens to port 8189 and echoes back all
client input.
*/
public class ECHOsERVER
{
public static void main(String[] args )
{
try
{
// establish server socket
ServerSocket s = new ServerSocket(8189);

// wait for client connection
Socket incoming = s.accept( );
try
{
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();

Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream, true /* autoFlush */);

out.println( "Hello! Enter BYE to exit." );

// echo client input
boolean done = false;
while (!done && in.hasNextLine())
{
String line = in.nextLine();
out.println("Echo: " + line);
if (line.trim().equals("BYE"))
done = true;
}
}
finally
{
incoming.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
...全文
269 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wifewifewife 2009-11-27
  • 打赏
  • 举报
回复
在进程里面结束java.exe就可了.
如果不会的话.
哈哈哈.就重起电脑吧.一了百了.肯定行.
zhengzeng 2009-11-27
  • 打赏
  • 举报
回复
ServerSocket类, 程序 结束时,要调用它的close();

如果是其他程序占用,你可以下一个fport来看看谁占用了,或用360中也有这个功能。

或是你改一个端口试试。
amdgaming 2009-11-27
  • 打赏
  • 举报
回复
// establish server socket
ServerSocket s = new ServerSocket(8189);
这个,你是不是 运行了n次, 都没关闭 呢

s.close();
zhanghuaigong 2009-11-27
  • 打赏
  • 举报
回复
为什么端口会被占用?
amdgaming 2009-11-27
  • 打赏
  • 举报
回复
端口 已被占用。。。。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧