你狗哥 2020-01-20 21:52 采纳率: 0%
浏览 194
已采纳

关于socket连接的问题

例:
假设目标电脑IP地址为192.168.1.12 端口号为5000,设置超时连接时长为10000毫秒(10秒)
下面建立连接

Socket client = new Socket();
client.connect(new InetSocketAddress("192.168.1.12", 5000), 10000);

问:
现在假如这个IP地址或者端口号连接不上 我会报SocketTimeoutException异常 但是这个异常不能通过try catch捕获
如果catch捕获这个异常如下代码

try{
}
catch (SocketTimeoutException e1) {
            e1.printStackTrace();
            System.out.println("--------------");
        }

如操作上面代码会提示需要throws这个异常
图片说明

但是如果我throws了这个异常的话 再运行代码,如果时间超时 控制台还是会报上述SocketTimeoutException异常
求大神解决
现在需实现在超时情况下控制台打印一个报警信息并且控制台不爆红!

  • 写回答

3条回答 默认 最新

  • threenewbee 2020-01-20 22:21
    关注

    你先用Exception看下,丢出来的是什么异常,再照着写。根据提示,你是不是用 IOException 捕获了,它是 TimeoutException 的基类,如果有了它,Timeout 就不会触发。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?