首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

socket建立连接,该怎么解决

2012-02-11 
socket建立连接代码如下:SocketsocketnewSocket()publicvoidsend(Stringhost,intport,Stringmessage){so

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

热点排行