更新:我在这个Android服务器示例中崩溃:
//------------------------------------------------------------
public class AsyncReceiveUdp2 extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... f_url) {
int udp=111;
String txt="";
byte[] packet = new byte[2000];
DatagramPacket dp = new DatagramPacket(packet, packet.length);
DatagramSocket ds = null;
try {
ds = new DatagramSocket(udp);
ds.setSoTimeout(10000);
printLog("Ready");
ds.receive(dp);
printLog("Received");
...
} catch (SocketException e) {
printLog("Error1");
e.printStackTrace();
} catch (IOException e) {
printLog("Error2");
e.printStackTrace();
} finally {
if (ds != null) {
ds.close();
}
}
return null;
}
}我收到了我的"error2“信息。原因是"java.net.SocketTimeoutException“。它发生在10秒后。但是我从另一台计算机上发送了UDP数据包。嗯,我不明白它是怎么工作的.请给我任何想法!
对不起,网站上说我的帖子大多是代码
发布于 2015-05-03 12:40:39
您不能在UI线程上运行网络线程,Android策略禁止它。创建一个新线程或使用AsyncTask
https://stackoverflow.com/questions/30013404
复制相似问题