套接字超时无效

Tah*_*ani 3 sockets android timeout

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

InetAddress serverAddr = InetAddress.getByName(serverIp);
Socket socket = new Socket(serverAddr, serverPort);
socket.setSoTimeout(10*1000);
Run Code Online (Sandbox Code Playgroud)

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

Socket socket = new Socket(serverAddr, serverPort);
Run Code Online (Sandbox Code Playgroud)

我需要实现5秒作为超时,就好像它在这个ip上找不到服务器套接字它可能只是超时.

想请...

Bha*_*tar 7

愿这可以帮到你:

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

Socket socket = new Socket();
Run Code Online (Sandbox Code Playgroud)

然后用

socket.connect(remoteAddress, timeout);
Run Code Online (Sandbox Code Playgroud)

其他方式:

Socket socket= new Socket();   
socket.connect(new InetSocketAddress(hostip,port_num),connection_time_out); 
Run Code Online (Sandbox Code Playgroud)