我用Android编写了一个与UDP套接字定期通信的应用程序。 我创建了一个datagramSocket,并每隔5秒定期发送和接收来自服务器的一个数据包,这是代码的一部分:
Thread commTh = new Thread(new Runnable() {
@Override
public void run() {
try {
ds = new DatagramSocket();
serverAddr = InetAddress.getByName(ip);
ds.connect(serverAddr, port);
while(exitThread) {
....
DatagramPacket dp;
dp = new DatagramPacket(data.getBytes(),
data.length(), serverAddr, port);
ds.setSoTimeout(DEFAULT_TIMEOUT);
ds.send(dp);
byte[] lMsg = new byte[SOCKET_BYTE];
dp = new DatagramPacket(lMsg, lMsg.length);
ds.receive(dp);
....
Thread.sleep(5000);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
});
几十分钟后,我随机得到以下异常:
W/System.err: java.io.IOException: sendto failed: EPERM (Operation not permitted)
W/System.err: at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:576)
at libcore.io.IoBridge.sendto(IoBridge.java:544)
at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:125)
at java.net.DatagramSocket.send(DatagramSocket.java:721)
为什么我不允许进行手术? 我的清单中有互联网许可
本文介绍了一个使用Android进行UDP通信的应用程序遇到的问题,在运行一段时间后出现Operation not permitted异常的情况及可能的原因。
 - 堆栈内存溢出...&spm=1001.2101.3001.5002&articleId=114897198&d=1&t=3&u=7338df7f730348b2975dd11646df7dd0)
1万+

被折叠的 条评论
为什么被折叠?



