文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

问题解决:java.net.SocketTimeoutException: Read timed out

2023-09-07 09:23

关注

Sockets:两个计算机应用程序之间逻辑链接的一个端点是应用程序用来通过网络发送和接收数据的逻辑接口

  1. IP地址和端口号的组合
  2. 每个Socket都被分配了一个用于标识服务的特定端口号
  3. 基于连接的服务使用基于tcp的流Sockets
    • Java为客户端编程提供了java.net.Socket类
    • 相反,服务器端TCP/IP编程使用java.net.ServerSocket类
    • 另一种类型的Socket是基于udp的数据报Sockets,用于无连接的服务。Java为UDP操作提供了java.net.DatagramSocket

为了从客户端建立到服务器的连接,调用Socket构造函数,它实例化一个Socket对象

构造函数将远程主机地址和端口号作为输入参数。之后,它尝试根据给定的参数建立到远程主机的连接该操作将阻塞所有其他进程,直到成功建立连接

在服务器端,ServerSocket类持续侦听传入的连接请求。当ServerSocket接收到连接请求时,它调用accept()方法来实例化一个新的Socket对象。类似地,此方法也会阻塞,直到与远程客户机成功建立连接。

没有服务正在侦听远程主机上的给定端口

远程主机不接受任何连接

远程主机不可用

网速慢

没有到远端主机的转发路径

有时,防火墙出于安全原因会阻塞某些端口。因此,当客户端试图建立到服务器的连接时,可能会出现“连接超时”错误。因此,在将端口绑定到服务之前,我们应该检查防火墙设置,看看它是否阻塞了端口。

对于TCP客户端和服务器端,我们可以使用setSoTimeout(int timeout)方法指定socketInputStream.read()方法阻塞的时间量:

Socket socket = new Socket(host, port);socket.setSoTimeout(30000);

但是,如果在方法返回之前超时,程序将抛出SocketTimeoutException。

来源地址:https://blog.csdn.net/yyuggjggg/article/details/129288416

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯