gpt4 book ai didi

android - 连接时套接字超时

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:34:45 24 4
gpt4 key购买 nike

我正在尝试在 Android 上实现一个 tcp 客户端应用程序。当我尝试连接到我的 C++ 服务器时,套接字在尝试连接到服务器时超时。

我的代码:

new Thread(new ClientThread()).start();
try
{
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
out.println("Test message.");
}
catch (Exception e)
{
// ERROR1
e.printStackTrace();
}

...

class ClientThread implements Runnable
{
@Override
public void run()
{
try
{
InetAddress serverAddr = InetAddress.getByName("192.168.1.116");
socket = new Socket(serverAddr, 9000);
}
catch (Exception e)
{
// ERROR2
e.printStackTrace();
}
}
}

首先,发生ERROR1(套接字为空),然后发生ERROR2(连接超时)。服务器工作正常,我已经用不同的客户端进行了测试。我有“使用许可”,所以这应该不是问题。

编辑:在 ERROR2 处堆栈:

05-17 02:26:50.789: W/System.err(26625): java.net.ConnectException: failed to connect to /192.168.1.116 (port 9000): connect failed: ETIMEDOUT (Connection timed out)
05-17 02:26:50.789: W/System.err(26625): at libcore.io.IoBridge.connect(IoBridge.java:114)
05-17 02:26:50.789: W/System.err(26625): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
05-17 02:26:50.789: W/System.err(26625): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
05-17 02:26:50.789: W/System.err(26625): at java.net.Socket.startupSocket(Socket.java:566)
05-17 02:26:50.789: W/System.err(26625): at java.net.Socket.<init>(Socket.java:225)
05-17 02:26:50.789: W/System.err(26625): at cz.gclient.gardenclient.MainActivity$ClientThread.run(MainActivity.java:153)
05-17 02:26:50.789: W/System.err(26625): at java.lang.Thread.run(Thread.java:841)
05-17 02:26:50.789: W/System.err(26625): Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
05-17 02:26:50.789: W/System.err(26625): at libcore.io.Posix.connect(Native Method)
05-17 02:26:50.789: W/System.err(26625): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
05-17 02:26:50.789: W/System.err(26625): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
05-17 02:26:50.789: W/System.err(26625): at libcore.io.IoBridge.connect(IoBridge.java:112)
05-17 02:26:50.789: W/System.err(26625): ... 6 more

最佳答案

“连接超时”是网络连接问题。例如,可能存在防火墙。这不是编程问题,您无法用代码解决它。

关于android - 连接时套接字超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23705592/

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