代码如下:
Socket socket = new Socket();
public void send(String host,int port,String message){
socket.connect(new InetStockAddress(host,port),0);
//发关消息
socket.close();
}
send()在一个线程中被反复调用,问题是第2次调用时会报socket is closed的错
误,异常发生在connect()处,我打开connect()的源码发现
里面:
if (isClosed())
throw new SocketException( "Socket is closed ");
就是关闭后再建立连接就会报错
怎样关闭连接,而又使下次调用connect()方法时不报错,或者对于这个问题有
更好的解方案,请响应一下。先谢了....
------解决方案--------------------
在线程开始时connect,在线程结束后close,不要反复连接、断开。
------解决方案--------------------
恩,在线程里面做成connect,close函数,使用线程的地方调用。不要每次发消息都从新连接
如果一定要重新连接把你的new socket放到send函数里面(建议不要这样做,效率问题)
------解决方案--------------------
这样是不行的 一个socket只能连接一次,断开之后就失效了
你如果要写成这样,你可以把new Socket(ip,port)的方法也写到循环里面
------解决方案--------------------
关掉之后,再 new 一个。
------解决方案--------------------
用多线程在停止后自动重新连接!