gpt4 book ai didi

java - 无法通过套接字连接到其他设备

转载 作者:行者123 更新时间:2023-12-02 11:26:31 25 4
gpt4 key购买 nike

我正在开发无线文件共享应用程序。我创建了 2 个不同的 AsyncTasks,一个用于发送,一个用于接收。在用于发送数据的类中,这是我用于连接的代码 fragment 。

client = new Socket();
client.bind(null);
client.connect(new InetSocketAddress(groupOwnerAddress, 8888));

在用于接收数据的类中,我创建了一个ServerSocket和一个Socket,然后调用

server = new ServerSocket(8888);
client = server.accept();

由于某种原因,我的设备无法相互连接。在我发送数据的设备中,我在日志中收到以下消息。

我非常确定我的 IP 地址没有错误,因为我使用 WifiP2pManager 的 connect() 方法连接了 2 个设备。然后我通过请求组信息来获取 IP 地址。

java.net.ConnectException: failed to connect to /192.168.49.1 (port 8888) from /:: (port 38275): connect failed: ECONNREFUSED (Connection refused)

错误指向这一行

client.connect(new InetSocketAddress(groupOwnerAddress, 8888));

网上查了一下错误,说是端口没有监听。但是当我调试接收设备时,我可以看到调试器停在这一行

client = server.accept();

据我所知,这意味着设备正在监听端口。

感谢任何帮助。

最佳答案

确保先运行服务器套接字(接收方),然后运行发送方套接字(发送方),如果先运行发送方套接字,然后启动服务器套接字,则发送方和接收方之间的启动差异会持续 5 到 8 秒可能会出现此连接失败错误

如果您正在使用,从 java.io 发送大文件并不是一个好的选择。使用 java.nio 包处理大文件请参阅此 http://www.coderpanda.com/java-socket-programming-transferring-large-sized-files-through-socket/

关于java - 无法通过套接字连接到其他设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49587898/

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