默认
发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 错误SocketException: sendto failed: EPERM (Operation not permitted)
阅读(74513) | 评论(9 收藏 淘帖1
集成的是MobileIMSDK,运行AndroidStudio在真机上,在日志中看到如下错误,大神知道是什么原因吗?

10-23 11:00:35.031 2853-2853/? D/wpa_supplicant: wlan0: Control interface command 'SIGNAL_POLL'
10-23 11:00:35.045 2853-2853/? D/wpa_supplicant: CTRL-DEBUG: global_ctrl_sock-sendto: sock=11 sndbuf=163840 outq=0 send_len=48
10-23 11:00:35.143 821-1571/com.gbcom.edu D/AutoReLoginDaemon: 【IMCORE】自动重新登陆线程执行中, autoReLogin?true...
10-23 11:00:35.161 821-1571/com.gbcom.edu D/LocalUDPSocketProvider: 【IMCORE】isLocalUDPSocketReady()==true,直接返回本地socket引用哦。
10-23 11:00:35.165 821-1571/com.gbcom.edu E/UDPUtils: 【IMCORE】send方法中》》发送UDP数据报文时出错了,原因是:sendto failed: EPERM (Operation not permitted)
                                                      java.net.SocketException: sendto failed: EPERM (Operation not permitted)
                                                          at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:542)
                                                          at libcore.io.IoBridge.sendto(IoBridge.java:511)
                                                          at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:184)
                                                          at java.net.DatagramSocket.send(DatagramSocket.java:305)
                                                          at net.openmob.mobileimsdk.android.utils.UDPUtils.send(UDPUtils.java:88)
                                                          at net.openmob.mobileimsdk.android.utils.UDPUtils.send(UDPUtils.java:50)
                                                          at net.openmob.mobileimsdk.android.core.LocalUDPDataSender.send(LocalUDPDataSender.java:279)
                                                          at net.openmob.mobileimsdk.android.core.LocalUDPDataSender.sendLogin(LocalUDPDataSender.java:82)
                                                          at net.openmob.mobileimsdk.android.core.AutoReLoginDaemon$1$1.doInBackground(AutoReLoginDaemon.java:104)
                                                          at net.openmob.mobileimsdk.android.core.AutoReLoginDaemon$1$1.doInBackground(AutoReLoginDaemon.java:1)
                                                          at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                          at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                          at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
                                                          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                          at java.lang.Thread.run(Thread.java:818)
                                                       Caused by: android.system.ErrnoException: sendto failed: EPERM (Operation not permitted)
                                                          at libcore.io.Posix.sendtoBytes(Native Method)
                                                          at libcore.io.Posix.sendto(Posix.java:211)
                                                          at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:278)
                                                          at libcore.io.IoBridge.sendto(IoBridge.java:509)
                                                          at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:184)
                                                          at java.net.DatagramSocket.send(DatagramSocket.java:305)
                                                          at net.openmob.mobileimsdk.android.utils.UDPUtils.send(UDPUtils.java:88)
                                                          at net.openmob.mobileimsdk.android.utils.UDPUtils.send(UDPUtils.java:50)
                                                          at net.openmob.mobileimsdk.android.core.LocalUDPDataSender.send(LocalUDPDataSender.java:279)
                                                          at net.openmob.mobileimsdk.android.core.LocalUDPDataSender.sendLogin(LocalUDPDataSender.java:82)
                                                          at net.openmob.mobileimsdk.android.core.AutoReLoginDaemon$1$1.doInBackground(AutoReLoginDaemon.java:104)
                                                          at net.openmob.mobileimsdk.android.core.AutoReLoginDaemon$1$1.doInBackground(AutoReLoginDaemon.java:1)
                                                          at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                          at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                          at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
                                                          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                          at java.lang.Thread.run(Thread.java:818)
10-23 11:00:35.234 16021-16451/com.tencent.mobileqq I/UndealCount.QZoneUnreadServletLogic: getUdealCountLastGetTime: [{"key":1002,"value":1540263410},{"key":33,"value":1540263410},{"key":1001,"value":1540263590},{"key":35,"value":1540263410},{"key":3,"value":1540263590},{"key":48,"value":1540263590},{"key":4294967295,"value":1540263590},{"key":1000,"value":1540259620}]
10-23 11:00:35.237 16021-16451/com.tencent.mobileqq I/SOSO.LBS.LbsManagerService: getCachedLbsInfo business id: qzone_little_video_enter
10-23 11:00:35.237 16021-16451/com.tencent.mobileqq I/Q.lebatab.UndealCount.QZoneNotifyServlet: [QZ_LBS_MODULE] mIsGettingLocation = , (now - mLastGetLocationTime) ) = 45, so return
10-23 11:00:35.251 3466-5120/com.tencent.mobileqq:MSF D/MSF.C.NetConnTag: pa ok: 53738
10-23 11:00:35.252 3466-5120/com.tencent.mobileqq:MSF D/MSF.C.NetConnTag: netSend ssoSeq:53738 uin:*2702 cmd:GRIBLjU2IAk8IH4zPywQNC4mMTgZNzA0Pg 54846 360585a
10-23 11:00:35.253 286-2008/? E/NetlinkEvent: NetlinkEvent::FindParam(): Parameter 'TIME_NS' not found
10-23 11:00:35.253 286-2008/? E/NetlinkEvent: NetlinkEvent::FindParam(): Parameter 'UID' not found
10-23 11:00:35.331 331-435/? I/ThermalEngine: Sensor:batt_temp:341 mC
10-23 11:00:35.357 3466-5950/com.tencent.mobileqq:MSF D/MSF.C.NetConnTag: netRecv ssoSeq:53738 uin:*2702 cmd:GRIBLjU2IAk8IH4zPywQNC4mMTgZNzA0Pg 54858 cross:0
10-23 11:00:35.362 3466-5142/com.tencent.mobileqq:MSF I/MSF.S.AppProcessManager: SendToApp process:com.tencent.mobileqq fromServiceMsg: FromServiceMsg msName:unknown ssoSeq:53738 serviceCmd:SQQzoneSvc.getUndealCount appSeq:337 failCode:1000 cost=3 needBoot=false

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:MobileIMSDK
上一篇:[已回复] Springboot项目集成MobileIMSDK,但不回调自已实现的ServerEventListener下一篇:[已回复] 求助MobileIMSDK的android版切换语言时APP闪退了?

本帖已收录至以下技术专辑

推荐方案
评论 9
看到这个了吗?“Operation not permitted

表示你的代码里没有加进网络操作的权限,你打开Demo的工程,把AndroidManifast.xml里的权限配置复制到你工程里的AndroidManifast.xml里即可。

我以为这是常识,人人都知道。。。
引用:JackJiang 发表于 2018-10-23 11:37
看到这个了吗?“Operation not permitted”

表示你的代码里没有加进网络操作的权限,你打开Demo的工程 ...

不是权限的问题,权限是有的,这个是最基础的肯定不会犯这种错误的
引用:JackJiang 发表于 2018-10-23 11:37
看到这个了吗?“Operation not permitted”

表示你的代码里没有加进网络操作的权限,你打开Demo的工程 ...

不是权限的问题,权限是有的,这个是最基础的肯定不会犯这种错误的
引用:dzl2005328 发表于 2018-10-26 13:56
不是权限的问题,权限是有的,这个是最基础的肯定不会犯这种错误的

原版的工程里,在这台手机是否报这个问题?
小米手机在后台运行时,会有网络断网的机制。所以发不出去。另外,心跳太频繁,Linux 底层不允许:http://www.mamicode.com/info-detail-1893252.html。 把心跳时间改大一点,比如30秒,或者60秒。
楼主后面怎么解决的这个问题呢,我这边用的是DatagramChannel 去通道内读写数据,但是发现在小米11手机上,会偶尔出现,不让写入的情况,也是报这个java.io.IOException: Operation not permitted,发现公司的测试机里,就小米11出现了这个问题,暂时没有啥头绪
引用:Tony_Su 发表于 2022-02-23 15:28
楼主后面怎么解决的这个问题呢,我这边用的是DatagramChannel 去通道内读写数据,但是发现在小米11手机上, ...

网络权限都加到AndroidManifest.xml里了吗?
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
神秘人  发表于 1 年前
引用:JackJiang 发表于 2022-02-24 11:32
网络权限都加到AndroidManifest.xml里了吗?

这些指定是加了的,不然我也不会说偶尔会不让写入的,发现这个情况,在息屏的时候出现的次数比较容易出现
引用:qzuser 发表于 2022-06-01 17:17
这些指定是加了的,不然我也不会说偶尔会不让写入的,发现这个情况,在息屏的时候出现的次数比较容易出现

那就是被手机厂商的省电策略给控制了,除非去搞保活,否则绕不过去
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部