我正在做一个android项目,需要通过发送数据包和接收/解码响应与主服务器交互。
用户应该能够通过位于项目中任何位置的自定义方法与服务器交互/发送数据包。
我遇到的主要问题是在我的项目中包含套接字。
我曾尝试在一个线程上运行服务器,然后在一个服务上运行,但每当我尝试从外部类访问send方法时,总是会遇到同样的问题:
I/Socket: java.util.concurrent.ExecutionException: java.io.IOException: android.os.NetworkOnMainThreadException
我在这里做错了什么?
如有任何帮助,我们将不胜感激。
您可以使用Handler尝试此操作。这里有个例子。
final Handler h = new Handler(Looper.getMainLooper());
// in your thread's run()
public void on run(){
h.post(new Runnable(){
@Override
public void run(){
// here put your code (those giving exception)
} });
}
}