어떤 이유인지 나는 소켓의 사전에 선택된 소켓을 일치시킬 수 없습니다. 아래의 코드는 누군가가 accept를 연결했을 때 소켓의 사전을 만든다. 그것은 socket.error: [Errno 22] Invalid argument
Select with Python 소켓 사전
listening = {}
L = []
for link in links:
try:
# listening
listening[link] = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listening[link].bind((host, routers[routername].baseport+links[link].locallink))
listening[link].listen(backlog)
# append routes and listen-list
L.append(listening[link])
except socket.error, (value,message):
print "Could not open socket: " + message
sys.exit(1)
# run loop
input = L
running = 1
while running:
inputready,outputready,exceptready = select.select(input,[],[], 0)
# Sockets loop
for s in inputready:
if s in L:
# handle the server socket
client, address = s.accept()
input.append(client)
(당신이 어쨌든 원하는
s
이다) 그러나, 선택 다른 데이터 유형과 일을 복잡하게보다 그래서 오히려 목록을 소요, 목록 스틱s
대신L
를 참조 ... 조금 더 명확히 할 수 있니? – Nate나는 어떤 부분을 구체적으로 말하고 싶습니까, 아니면 모든 것을 의미합니까? –
두 번째 및 세 번째 문장을 파싱하는 데 문제가 있습니다. – Nate