问题描述:
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);