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

这篇具有很好参考价值的文章主要介绍了问题解决:java.net.SocketTimeoutException: Read timed out。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简单了解Sockets

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

什么是“Connection Timed Out”

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

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

  • 然而,如果连接在一段时间后没有成功,程序会抛出一个ConnectionException,并带有" connection timed out "消息:
    java.net.ConnectException: Connection timed out: connect
    

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

  • 如果TCP握手没有完成,则连接仍然不成功。结果,程序抛出IOException,指示在建立新连接时发生错误

发生“ Read timed out”的原因

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

远程主机不接受任何连接

远程主机不可用

网速慢

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

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

解决方法

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

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

但是,如果在方法返回之前超时,程序将抛出SocketTimeoutException。文章来源地址https://www.toymoban.com/news/detail-443661.html

到了这里,关于问题解决:java.net.SocketTimeoutException: Read timed out的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SocketTimeoutException:Read timed out问题解决org.apache.cxf.interceptor.Fault:Could not receive Message

    利用WebService给其它服务器地址发送请求时,遇到了一个报错: org.apache.cxf.interceptor.Fault:Could not receive Message。 控制台上显示: java.net.SocketTimeoutException:Read timed out。 搜了一下发现网上大部分是分享 org.apache.cxf.interceptor.Fault:Could not send Message。 发送问题的,很少有关于接收报错

    2024年02月05日
    浏览(41)
  • 解决Read timed out和connect timed out的问题

    如果在新建Android项目时报错: Read timed out或者connect timed out 一定可以解决问题的办法如下: 第一步:打开项目下gradle中的第二个.properties文件,找到这个文件的下载路径,、一般卡顿是因为下载这个文件时网速较慢或者是因为在国外的原因。 第二步:按照文档中的路径,选

    2024年02月06日
    浏览(55)
  • android studio的read timed out或connect timed的问题解决

    (直接看方法到文末) 网上相关的方法很多,我在尝试多个博客,包括: Android Studio新建项目之后直接出现报错 Android studio报错:Plugin [id: ‘com.android.application‘, version: ‘7.2.0‘等 包含的方法有: 修改gradle-wrapper.properties的地址为 setting里面设置 但是这样等的方法最终都会出

    2023年04月16日
    浏览(37)
  • 【报错解决】anaconda: Read timed out.

    在anaconda的虚拟环境中用pip或conda下载安装包时,遇到如下报错,具体报错内容如下所示: 造成以上报错的原因是:网络连接出现问题,无法下载。 换一个源进行下载,比如使用清华源、豆瓣源等。我这里是使用百度镜像下载的,速度较快,而且也不会报错,几分钟就下载完

    2024年01月24日
    浏览(49)
  • 解决:Android Studio ERROR: Read timed out

    Android Studio ERROR: Read timed out 在settings.gradle添加阿里云仓库 最后一步,点击上面的绿色小锤子或者Build加载一下就可以了。加载过程需要很久,我加载了大约一个小时左右,需要耐心等待加载完成。 Androidstudio的版本默认是用的mavenCentral()的库,但是它是外国仓库镜像,所以有

    2024年02月07日
    浏览(56)
  • 【快速解决】Android Studio ERROR: Read timed out

    每当我们升级Android Studio版本后,新建一个安卓项目总是会出现Read timed out。我当时网上查阅太多,总是找不到好的解决办法。今天终于找到解决方法。 一共两个方法: 1、我们打开gradle-wrapper.properties文件。如下图所示: 红线标的网址,是会下载超时的,故解决方法是将其修

    2024年01月16日
    浏览(68)
  • 完美解决 AndroidStudio Gradle 下载jar包慢Android Studio : Read timed out和connect timed out的解决方法

    在项目当中找settings.gradle.kts文件将其 找到上图的文件,按照上图进行将下面内容进行替换 新版本 老版本 mavenCentral() 如果不知是什么版本就挨个试一下

    2024年02月05日
    浏览(51)
  • Java连接redis报错timed out问题解决

    之前写了一篇文章:Spring redis使用报错Read timed out排查解决,解决超时问题 后面发现解决的不彻底,仍有报错 详细查看了下源码,发现不同版本里,参数名不一样,之前的参数设置,并没有在新版本里生效 核心报错提示是这一句: JedisConnectionException: java.net.SocketTimeoutExcept

    2024年01月19日
    浏览(44)
  • CentOS桥接模式下设置静态IP并解决java.net.ConnectException: Connection timed out: connect

    镜像(阿里镜像站) 最近在配置服务器,DHCP模式下IP地址不固定,每次SSH远程登录连接不上,都要查看新动态分配的IP地址重新配置,感觉些许麻烦,于是给机器配置了 静态固定IP 。 动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户

    2024年02月09日
    浏览(43)
  • finalshell提示java.net.ConnectException: Connection timed out: connect

    为什么超时? 事情是这样的,为了不向学校低头,我没有开通校园网,买了流量卡,于是每次都给电脑开热点,朋友叫我吃饭,我直接就走了,干完饭回来,在finalshell里面它提示java.net.ConnectException: Connection timed out: connect,我去检查了虚拟机是不是在开着,我的Linux是不是在

    2023年04月22日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包