当前位置:  技术问答>java相关

socket抛出异常

    来源: 互联网  发布时间:2015-11-16

    本文导语:  InetSocketAddress isa = new InetSocketAddress(InetAddress.getLocalHost() , 3333); ServerSocket ss = new ServerSocket(); ss.bind(isa); ss.setSoTimeout(10000); Socket s = null; try {    while(true)    {        if (ss.isClosed())  break;        s = s...

InetSocketAddress isa = new InetSocketAddress(InetAddress.getLocalHost() , 3333);
ServerSocket ss = new ServerSocket();
ss.bind(isa);
ss.setSoTimeout(10000);
Socket s = null;
try
{
   while(true)
   {
       if (ss.isClosed())  break;
       s = ss.accept();
       pool.execute(new sss(s));//在线程池中操作
    }
    System.out.println("close socket: " + ss.isClosed());
}
catch(Exception e)
{
     e.printStackTrace();
}

我运行这段程序后,等待10秒,就出现了下面错误,请问该怎么办?
java.net.SocketTimeoutException: Accept timed out

at java.net.PlainSocketImpl.socketAccept(Native Method)

at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:344)

at java.net.ServerSocket.implAccept(ServerSocket.java:441)

at java.net.ServerSocket.accept(ServerSocket.java:412)

at com.nearbox.server.ServerSocketWrapper.accept(ServerSocketWrapper.java:44)

at com.nearbox.server.AbstractServerSocket.accept(AbstractServerSocket.java:41)

at com.nearbox.server.sss.main(sss.java:63)

|
try
{
   while(true)
   {
       if (ss.isClosed())  break;
       try{ 
          s = ss.accept();
          pool.execute(new sss(s));//在线程池中操作
       }catch(SocketTimeoutException e ) {
           System.out.println("Socket Accept Timeout");
           ss.close();
       }
    }
    System.out.println("close socket: " + ss.isClosed());
}
catch(Exception e)
{
     e.printStackTrace();
}

|
ss.setSoTimeout(10000);
这行注释掉再试一下

|
楼上说的对,JAVA的SOCKET,时间到了以后没有响应的话,会抛出异常的,所以你只要捕获异常就可以了。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • c/c++ iis7站长之家
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • java命名空间java.net类socket的类成员方法: isconnected定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3