[英]Set timeout on Socket before it tries to connect
Socket类文档在这里 。
在我的代码atm中,我使用如下构造函数:
Socket m_Socket = new Socket(m_Address, m_Port);
m_Address
是一个InetAddress,而m_Port
是一个int。
当此行运行并且无法建立套接字时,应用程序将等待3秒钟左右,然后引发IOException。
我可以看到没有构造函数同时使用InetAddress
, int
和另一个int
进行超时。 我需要等待250毫秒,而不是现在的3秒钟。 这意味着我需要在套接字上设置超时,但是找不到任何方法来执行此操作。 我知道我们有方法setSoTimeout(timeout)
,但是需要在Socket
类的实例上调用它。 我可以通过执行以下操作实例化一个新的Socket: m_Socket = new Socket();
,但随后我需要设置InetAddress和端口,并且Socket类似乎没有任何执行此操作的方法(构造函数除外)。
在实际尝试设置套接字之前,如何设置超时?
您可以使用默认构造函数创建未连接的Socket,然后使用超时调用connect()。
Socket m_Socket = new Socket();
m_Socket.connect(addr,1000);
尝试
Socket sock = new Socket();
sock.connect(new InetSocketAddress(m_Address, m_Port), 250);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.