套接字超时不起作用 [英] Socket timeout not working

查看:35
本文介绍了套接字超时不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a TCP Socket running on a C# machine. I need to connect that server socket from Android via Server IP and port as below:

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

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

If c# machine doesn't have socket running on Android it hangs on:

Socket socket = new Socket(serverAddr, serverPort);

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

I need to implement 5 seconds as timeout like if it doesn't find server socket on this ip it could simply timeout.

请多多指教..

推荐答案

希望对您有所帮助:

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

Socket socket = new Socket();

然后使用

socket.connect(remoteAddress, timeout);

另一种方式:

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

这篇关于套接字超时不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆