套接字超时无效

时间:2013-12-26 07:26:13

标签: 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上找不到服务器套接字一样,它可能只是超时。

请想......

2 个答案:

答案 0 :(得分:7)

这可以帮到你:

使用no参数构造函数创建套接字,如下所示:

Socket socket = new Socket();

然后使用

socket.connect(remoteAddress, timeout);

另一种方式:

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

答案 1 :(得分:1)

InetAddress serverAddr = InetAddress.getByName(serverIp);
Socket socket = new Socket();
socket.connect(serverAddr, timeout);