我創建了epoll
並註冊了一些嘗試連接到本地主機上關閉端口的非阻塞套接字。爲什麼epoll
告訴我,我可以寫入這個套接字(它提供事件掩碼中包含EPOLLOUT的事件之一)?但是這個套接字不打開,如果我嘗試發送一些東西給我,我得到一個錯誤Connection refused
。用於連接套接字的Epoll事件
另一個問題 - 什麼意思,即使EPOLLHUP?我認爲這是拒絕連接的事件。但是如何在這種情況下事件可以同時具有EPOLLHUP和EPOLLOUT事件?
Python的示例代碼:
import socket
import select
poll = select.epoll()
fd_to_sock = {}
for i in range(1, 3):
s = socket.socket()
s.setblocking(0)
s.connect_ex(('localhost', i))
poll.register(s, select.EPOLLOUT)
fd_to_sock[s.fileno()] = s
print(poll.poll(0.1))
# prints '[(4, 28), (5, 28)]'
哦,當然=)謝謝你,我對「民意調查」的工作原理有一個誤解。 –