[Image Removed]
我看这个是2018年的一个提交,以前一直没有问题的,现在突然碰到了,我这个手机也没更新Android操作系统
我加了日志
[2025.06.05-14.47.53:645][ 37412]LogSockets: Display: |SocketSubsystemBSD.cpp:54|CreateSocket, SocketType: DGram, SocketDesc: Unreal, ProtocolType: IPv4, Scoket:4385
[2025.06.05-14.47.53:645][ 37412]LogSockets: Display: |SocketSubsystemBSD.cpp:62|CreateSocket close socket
socket 是4385
tuo.chen
(tuo.chen)
3
您好,这个应该是早期socket使用select的时候添加的FD_SET最大只支持1024,后来22年的时候,应该是换成poll了
在最新的引擎(5.6)中这个限制已经移除了
tuo.chen
(tuo.chen)
4
5.6引擎如果打的Android包装在老的Android客户端那岂不是还是会有问题
哦哦,那就是引擎中FSocketBSD::HasState这个接口以前是用select实现的,所以以前创建socket的地方就限制了得小于1024吗? 不是Android操作系统的限制?
tuo.chen
(tuo.chen)
8
对的
但1024是系统的限制,由于不用select了,也就没有这个限制了
那还是select本身有1024的限制,不是Android有这个限制? 为什么iOS,Linux上没这个限制
tuo.chen
(tuo.chen)
10
理论上BSD内核的使用select都有上限,包括 ios 和 linux
在android下 ndk中, indlue/sys/select.h
#define FD_SETSIZE 1024
而linux和ios我没有去查看,不过应该也是这个值,只是之前发生过错误 所以没加上这个限制
嗯,linux和iOS也都是使用的是FScoketBSD::HasState 这个函数,应该是都会有问题的。 如果不是Android操作系统的限制,仅仅是select的限制的话。那我可以把5.6中的修改合过来了