소켓에서 recv()의 동작에 관하여..
글쓴이: sadrove / 작성시간: 월, 2005/04/11 - 1:51오전
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
위와 같이 소켓을 생성하였고..
while 1: try: recvCmd = self.sock.recv(1024) if len(recvCmd) == 0: print '아무것도 받은 메시지가 없습니다.' else: print '[RECV] ' + recvCmd return recvCmd.split() except: print '소켓에러'
위와 같이 메시지를 받는데..
원래 AF_INET은 서버로부터 메시지가 없으면 메시지 올 때까지 기다리지 않나요..?.
위의 코드대로하면.. 빈 메시지를 계속 받아와서 '아무것도 받은 메시지가 없습니다.' 를 화면에 계속 출력합니다..
왜 그럴까요...ㅠ.ㅠ...
Forums:
답변이 없어서.. 글 올릴려고...이렇게..^^;;p.s 질문이
답변이 없어서.. 글 올릴려고...이렇게..^^;;
p.s 질문이 얼토당토 않은걸까..ㅠ.ㅠ.
소켓의 방식이 non-blocking 방식인지 blocking 방식인지를
소켓의 방식이 non-blocking 방식인지 blocking 방식인지를 설정하는 옵션이 있을 겁니다. 지금 현상으로 봐서는 non-blocking 모드 인거 같습니다.
python 같은데 찾아보니 setblocking(flag) 메소드가 있네요. setblocking(1) 로 호출하고 루프에 들어 가도록 해보세요.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
댓글 달기