可以为Java Socket写消息设置超时吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以为Java Socket写消息设置超时吗相关的知识,希望对你有一定的参考价值。

参考技术A 可以。
URLConnection里面有一个setConnectionTimeout(int timeout);

* @param timeout an @code int that specifies the connect
* timeout value in milliseconds
参考技术B Socket socket = new Socket();
SocketAddress address = new InetSocketAddress("127.0.0.1", 8080);
try
socket.connect(address, 90000);
SocketTimeoutException
catch (IOException e)
e.printStackTrace();

使用Socket.connect(SocketAddress sa, int timeout)方法。
timeout为毫秒数,为0则永不超时(Socket默认也是如此)。
如果到时间,仍然没有连接成功,则抛出SocketTimeoutException,在java.net包中
参考技术C 长连接推送延时?不知道你的场景是什么,超时可以用Thread.sleep(2000),延时2秒执行后面代码。 参考技术D 有timeoit方法,来设置超时的时间。 第5个回答  2016-10-10 CloseableHttpClient httpclient = HttpClients.createDefault();

try

HttpGet httpget = new HttpGet(url);

CloseableHttpResponse response = httpclient.execute(httpget);

RequestConfig config = RequestConfig.custom()

.setConnectTimeout(2000).setSocketTimeout(2000).build();

httpget.setConfig(config);

int status = response.getStatusLine().getStatusCode();

response.close();

if (status == 200)

return true;

else

return false;



catch (IOException e)

finally

try

httpclient.close();

catch (IOException e)

e.printStackTrace();



soapui可以测试socket接口吗

参考技术A 设置一个连接超时时间 超过了 表示连接不成功 你不加超时时间 系统有一个默认的本回答被提问者采纳 参考技术B socket协议的接口测试方法
1.loadrunner使用socket协议写C调用底层socket协议数据

2.jmeter添加websocket相关依赖包,可以添加websocket协议的sampler

3.专门的socket协议测试工具,比如socket工具,tcpudptest等工具。tcpudptest无法设置并发数据量,不方便,而socket工具可以设置并发数据量,而且有相关的数据发送接收包的图像实时图,8583报文可用此方式。

4.socket外面套一层http协议,http协议走socket管道,直接使用jmeter的http请求压测。

以上是关于可以为Java Socket写消息设置超时吗的主要内容,如果未能解决你的问题,请参考以下文章

Java:这两种设置Socket超时时间的方法有啥不同吗?

soapui可以测试socket接口吗

我可以在 C# 中为 UdpClient 设置超时吗?

java套接字/输出流写入:它们阻塞吗?

java中的socket编程是作啥的

Java设置Client Socket链接Server超时时间