java - 如果socketaccept导致异常,如何找出原因?

标签 java tcp

我正在创建一个函数,它将执行套接字接受并返回 3 个值 0=退出线程发生非常严重的错误 1=确定与连接对话 =发生了一些事情,再次接受(超时)。

我看到 IOException 有一个 GetCause 方法,它返回一个可抛出对象。 这个 throwable 对象有一个返回 throwable 的 get Cause 方法,该方法有一个返回 throwable 的 getcuase 方法,看起来这会永远持续下去,继续获取另一个 throwable 对象。

我怎样才能得到异常 Ant 关闭的原因??? 我可以使用 get Reason 和一堆字符串比较,但这似乎并不可靠。 特德

int GetClient()
{
    try {
        server.setSoTimeout(5*1);  
        connection=server.accept();
    }
    catch(IOException ec)
    {
        System.out.println(Thread.currentThread()+":"+ec.getMessage()); 


        return 2; // for time out or something where we can try again
        // return a zero saying we must stop erra o bad

    }   
    return 1;
}

最佳答案

accept()

抛出各种异常。 SocketTimeoutException 扩展了 IOException,但您可以在捕获一般 IOException 之前“捕获”它。这将允许您返回建议您可以重试的值。

这是否涵盖了您的 3 种情况:Ok、IOException 和 Timeout?

关于java - 如果socketaccept导致异常,如何找出原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569605/

相关文章:

java - 'NativeModules' 中的异常 : java. lang.RuntimeException:得到未知参数类:对象

Java - 使用多个 CPU 的非并行代码

AppFog 上的 Node.js TCP 套接字服务器

sockets - FastCGI with protocol = IIS 7 上的 Tcp

c++ - 用于数据传输的标准字节通信协议(protocol)

java - 在Spring Boot中定位/resource/目录下的静态文件

java - 如何计算地球上某个地方与太阳的夹角?

java - Xuggler 实时视频流示例

windows-7 - 从 Windows 发送 Apple 事件?

spring - Spring Integration 中的非阻塞 TCP 连接