android - 套接字超时不起作用

标签 android sockets timeout

我有一个在 C# 机器上运行的 TCP 套接字。我需要通过服务器 IP 和端口从 Android 连接该服务器套接字,如下所示:

InetAddress serverAddr = InetAddress.getByName(serverIp);
Socket socket = new Socket(serverAddr, serverPort);
socket.setSoTimeout(10*1000);

如果 c# 机器没有在 Android 上运行的套接字,它会挂起:

Socket socket = new Socket(serverAddr, serverPort);

我需要实现 5 秒超时,如果它在这个 ip 上找不到服务器套接字,它可能只是超时。

请思考..

最佳答案

希望这对你有帮助:

像这样使用无参数构造函数创建套接字:

Socket socket = new Socket();

然后使用

socket.connect(remoteAddress, timeout);

另一种方式:

Socket socket= new Socket();   
socket.connect(new InetSocketAddress(hostip,port_num),connection_time_out); 

关于android - 套接字超时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20780904/

相关文章:

android - 即使在对话框窗口上使用 SOFT_INPUT_ADJUST_RESIZE,显示键盘时我的自定义 View DialogFragment 也不会调整大小

java - Android X 中的透明导航栏

android - Surfaceflinger 测试程序

linux - 服务器 - 同一主机上的客户端通信

.net - 创建具有超时的任务

android - 导航架构组件 - 对话框 fragment

c - Linux 套接字上的 SO_SNDBUF 和 SO_RCVBUF

java - 多端口 Netty 套接字服务器

javascript - 如何防止 Google App Maker 应用超时

java - 如何使用 Junit 和超时获得成功?