2011-11-03 6 views
0

좋아, 이것이 내 파이썬 소켓 서버에서 뭘하려는거야.
내 서버가 데이터를 보낼 수있는 방법이 있습니다. 그러나 주소 목록에서 연결이 끊어진 클라이언트가 발견되면이를 사용합니다. 목록에서 제거하려면. 또한 데이터를 전송하기 위해 UDP를 사용하고 있습니다. 이것은 게임 서버용입니다. 뭔가가 좋아요 :목록에서 연결이 끊어진 클라이언트를 확인 하시겠습니까? 파이썬에서

for item in AddressList: 
    if item != errno[10054]: 
     sendto("data here", item) 
    else: 
     del(AddressList["spot where error occurred"]) 

희망 이것은 내가하려는 일에 대한 아이디어를 제공합니다. 전에 "왜 socket.select를 사용하지 않는가?"라고 말하기 전에 글쎄, 내가 뭘 시도에서 UDP를 socket.select에서 작동시키지 못했습니다. 그리고 TCP를하면서 게임 엔진에서 (내가 믹서를 사용하고 있습니다.) 내가 recv() 할 때 멈추게합니다.

답변

0

enumerate을 사용하면 해당 항목과 함께 색인을 제공 할 수 있습니다. 그러나 목록은 변경 가능하다는 것을 기억하십시오. 반복하는 목록을 수정하는 데주의해야합니다.

+0

좋아요, 마지막 부분에서 무엇을 의미합니까? –

+0

리스트를 반복하면서 같은 *리스트에서 엘리먼트를 삭제하면, 원하는 모든 것을 얻지 못할 수도 있습니다. 몇 가지 간단한 실험을 해보십시오. – retracile

+0

괜찮습니다. 열거 아이디어를 높이 평가하십시오. 나는 이것을 확실히 사용할 것입니다. –

관련 문제