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

新手求问java网络编程问题 求版主勿删
以上是服务器程序
以上是客户端程序
以上是第一次输入时显示界面
问题出现在这里,第二次想在客户端输入竟然报这种错误,网上貌似说是端口的问题,求大神给个具体解释
网络编程 java

------解决方案--------------------
服务端的socket每次接收完毕,finally里都会socket.close(),当然会报错了;

建议你把socket = socketServer.accept();提前到while(true)前面;
------解决方案--------------------
你的客户端将socket流关闭了,就是他们通信的桥梁被你给掐断了,所以就无法通信了。
------解决方案--------------------
引用:
你的客户端将socket流关闭了,就是他们通信的桥梁被你给掐断了,所以就无法通信了。


确实是这个原因,你的服务端要有判断,判断客户端断开的话,服务端也把这个链接断开。
------解决方案--------------------
客户端,把while(true)放到try里面,这样客户保证循环的时候socket是一直开启的。
另外,不建议使用while(true)形式,可以定义一个变量boolean b = true;然后用while(b)形式,如果要中断循环,只需要加上b的setter方法,讲值置为false。
在循环结束的时候就会执行finally里的方法关闭socket。
关闭前建议发送客户端一个标示符,表示关闭,便于服务端的处理。