读书人

socket建立连接,该怎么解决

发布时间: 2012-02-11 09:51:34 作者: rapoo

socket建立连接
代码如下:
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 一个。
[解决办法]
用多线程在停止后自动重新连接!

读书人网 >J2SE开发

热点推荐