android安卓socket客户端连接不上pc服务端

时间:2025-03-27 19:35:48
问题描述:

1、安卓利用Socket和PC通信无法连接
2、已经设置了
3、相同代码PC端和PC端通信没有问题
4、会在new Socket(ip,port)这里一直堵塞;
5、NetworkOnMainThreadException

解决方案:

(摘自[/q/1010000008783075])
NetworkOnMainThreadException, 是在主线程涉及Socket相关操作了吧?
这里先让代码跑起来, 假设你现在的客户端代码写在 startClient()里面, 需要把这个代码放到子线程去执行:

new Thread(new Runnable() {
        @Override
        public void run() {
            startClient();
        }
    }).start();

实际上, 你还要处理这个线程和主线程(UI线程)交互的问题, 这个就和业务代码相关了.
建议先了解一下主线程(UI线程)和子线程的区别/联系, 然后看一下线程通讯的实现.

到这里其实就解决了,如果没有可以试试下面的方案(未证实可不可行)

之前遇到过一次,客户端的socket连接的代码尝试换成下面的。
客户端:

socket = new Socket();
socket.connect(new InetSocketAddress("1.1.9.30",8080), 5000);