欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java.lang.Error: POLLNVAL detected Android

程序员文章站 2022-07-14 18:23:24
...

java.lang.Error: POLLNVAL detected

java.lang.Error: POLLNVAL detected
	at sun.nio.ch.SourceChannelImpl.translateReadyOps(SourceChannelImpl.java:123)
	at sun.nio.ch.SourceChannelImpl.translateAndSetReadyOps(SourceChannelImpl.java:145)
	at sun.nio.ch.AbstractPollSelectorImpl.updateSelectedKeys(AbstractPollSelectorImpl.java:129)
	at sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:78)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at zmq.Signaler.waitEvent(Signaler.java:133)
	at zmq.Mailbox.recv(Mailbox.java:90)
	at zmq.SocketBase.processCommands(SocketBase.java:905)
	at zmq.SocketBase.recv(SocketBase.java:828)
	at org.zeromq.ZMQ$Socket.recv(ZMQ.java:2646)
	at org.zeromq.ZMQ$Socket.recv(ZMQ.java:2634)
	at com.czht.recognition.service.ZMQNetwork.lambda$getNetworkTime$2$ZMQNetwork(ZMQNetwork.java:284)
	at com.czht.recognition.service.ZMQNetwork$$Lambda$2.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:761)

POLLNVAL 表示套接字文件描述符未打开。

注意一些连接、io操作关闭

简单解释:linux为了实现一切皆文件的设计哲学,不仅将数据抽象成了文件,也将一切操作和资源抽象成了文件,比如说硬件设备,socket,磁盘,进程,线程等。那么在操作这些所谓的文件的时候,我们不可能没操作一次就要找一次名字吧,这样会耗费大量的时间和效率。咱们可以每一个文件操作一个索引,这样,要操作文件的时候,我们直接找到索引就可以对其进行操作了。我们将这个索引叫做文件描述符(file descriptor),简称fd,在系统里面是一个非负的整数。每打开或创建一个文件,内核就会向进程返回一个fd,第一个打开文件是0,第二个是1,依次递增。一个进程能打开的最大文件数,内核默认是1024。如果我们要修改它,还得重新编译内核。