简单了解Sockets Sockets:两个计算机应用程序之间逻辑链接的一个端点,是应用程序用来通过网络发送和接收数据的逻辑接口 是IP地址和端口号的组合每个Socket都被分配了一个用于标识服务的
Sockets
Sockets:两个计算机应用程序之间逻辑链接的一个端点,是应用程序用来通过网络发送和接收数据的逻辑接口
IP地址和端口号
的组合为了从客户端建立到服务器的连接,调用Socket构造函数,它实例化一个Socket对象
构造函数将远程主机地址和端口号作为输入参数。之后,它尝试根据给定的参数建立到远程主机的连接,该操作将阻塞所有其他进程,直到成功建立连接
然而,如果连接在一段时间后没有成功,程序会抛出一个ConnectionException
,并带有" connection timed out "消息
:java.net.ConnectException: Connection timed out: connect
在服务器端,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
--结束END--
本文标题: 问题解决:java.net.SocketTimeoutException: Read timed out
本文链接: https://www.lsjlt.com/news/397900.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-06-03
2024-06-03
2024-06-04
2024-06-03
2024-06-03
2024-06-03
2024-06-03
2024-06-04
2024-06-03
2024-06-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0