日期:2014-05-20  浏览次数:20756 次

客户端服务器小程序地址问题
请教高手:

1.现在刚学Java网络编程,编写的客户端和服务器端程序只能运行一次,第二次运行就会出现异常,异常如下:
Exception in thread "main" java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at Server.Server.main(Server.java:359)
好像是地址或者端口号里面有问题吧?

2.电脑的IP是202.103.8.19。以前写过一个服务器程序,放在IP为202.103.8.19的电脑上运行服务器端程序,然后在另一台电脑上运行客户端程序,Socket socket=new Socket("202.103.8.19",8000);
为什么运行的时候不能实现服务器和客户端的通信。是不是运行服务器端程序的电脑还需要什么配置?
这样的饿程序在自己的电脑上运行(IP:127.0.0.1)就可以实现相互通信?
还请教高手指教。

------解决方案--------------------
Address already in use: JVM_Bind 

把端口换一下


------解决方案--------------------
端口可能被占用,试着换一个可用端口
------解决方案--------------------
是端口被占用的意思。是你这个程序上一次运行了,没有退出,或没有正常退出。
进程中,上一次程序仍然存在,仍然占用端口,关掉上个程序就好了
------解决方案--------------------
探讨
嗯,的确是这样,每次将Eclipse退出后,或者注销以后才能使用。
不过问题是,在不退出IDE或者注销前提下,该怎么停止上一个程序呢?我也单击了下面的那个红色停止按钮,这个也算是非正常退出吗?还希望您再指点一下啊。

------解决方案--------------------

1 那个红色的就是退出。你前一个占用了这个端口了。

2 看看你的防火墙
------解决方案--------------------
我也遇到过这种情况 学习啦 ^_^
------解决方案--------------------
1. Address already in use: JVM_Bind 端口已经被占用了所以会在运行时抛异常导致程序异常退出。应该做异常捕获并显示端口已被占用的提示信息。
2. 检查一下你的防火墙,软的硬的都要检查。