gpt4 book ai didi

java - 套接字超时和取消

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:31 24 4
gpt4 key购买 nike

我在 AsyncTask 中运行了以下代码:

    socket = new Socket(host, Integer.parseInt(port));

在主机名正确但没有套接字服务器监听端口的情况下,该行可能会在抛出异常前工作几分钟。我可以设置通信超时吗?此外,是否可以停止此过程 - 目前它不会对 AsyncTask.cancel 调用使用react。

最佳答案

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

socket = new Socket();

然后使用

socket.connect(remoteAddress, timeout);

参见 http://developer.android.com/reference/java/net/Socket.html获取更多信息。

-- 更新--

我原来没注意到你问的是如何取消套接字连接。虽然我不太熟悉套接字编程,但看起来您会这样做:

  1. 在 asynctask 上调用 cancel,因为您似乎已经尝试过了。
  2. 覆盖/实现 onCancelled异步任务的方法。在实现中,您将需要使用您对套接字的引用(使其成为类实例变量),并调用套接字的 close() 方法。请务必仔细阅读有关关闭套接字的内容,并确保您正确处理输入/输出流的异常,以免您的应用程序崩溃。结帐this有关关闭套接字的更多信息的问题。

关于java - 套接字超时和取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12740557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com