에 서버를 차단하는 것은 누군가가 소켓 라이브러리는 혼자가비 파이썬
는 "혼자 소켓 라이브러리"는 무엇을 의미하는비 파이썬
답변
확실하지를 사용하여 비 차단 서버 코드를 작성하는 방법을 알려 주시기 바랍니다 수 - 당신은 분명히 다른 모듈이 필요합니다 표준 파이썬 라이브러리에서.
최저 수준의 비 차단 코드는 select module입니다. 이렇게하면 많은 동시 클라이언트 연결을 가질 수 있으며 처리 대기중인 입력이보고됩니다. 따라서 서버 (승인) 소켓과 이미 수락 한 클라이언트 연결을 모두 선택합니다. 그 위에 얇은 레이어가 asyncore 모듈입니다.
왜 socket
일까요? 이므로 다른 표준 라이브러리 모듈을 사용하는 것이 훨씬 간단합니다. 그렇지 않은 경우 select
!
만 socket
를 사용하도록 숙제의 조건에 의해 제약이있는 경우에, 나는 그렇지 않으면 심각 운이있어, 당신은 적어도 threading
(또는 multiprocessing
)를 추가 할 수 있기를 바랍니다 - 당신이 timeout
와 소켓을 만들 수 있습니다 , 그러나 다른 명백한 표준 라이브러리 모듈 (비동기 또는 스레드 서비스를 지원하는 데 필요한 도움) 없이도 시간 초과 소켓을 저글링하는 것은 심각한 혼란을 야기합니다 ...-).
솔직히 말해서, (운동을위한 것이 아니면)하지 마십시오. Twisted Framework은 네트워크 관련 모든 작업을 수행하므로 전송 계층을 신경 쓰지 않고 프로토콜 만 작성해야합니다. 소켓 코드를 작성하는 것은 쉽지 않으므로 다른 누군가가 작성하고 테스트 한 코드를 사용하지 않는 것이 좋습니다.
eventlets 또는 gevent를 사용하십시오. 원숭이는 기존 라이브러리를 패치합니다. 소켓 모듈은 아무런 변화없이 사용할 수 있습니다. 코드는 동기식으로 나타나지만 비동기 적으로 실행됩니다.
예 : 실제로 http://eventlet.net/doc/examples.html#socket-connect
- 1. 파이썬에서 비 파이썬 프로그램 호출하기?
- 2. 비 파이썬 의존성이없는 파이썬에서 XML 검증하기
- 3. 비 ASCII 문자를 포함하는 파이썬 모듈 검색
- 4. 직물 (파이썬) 비 상세 모드에서 문을 추가
- 5. 인코딩 메일 제목 비 ASCII 문자 파이썬 (SMTP)는
- 6. 파이썬 appengine 비 AscII 문자를 포함하는 방법 html 메일을 보내십시오
- 7. 클래스 개체에서 파이썬 비 클래스 개체를 알려주는 방법
- 8. 파이썬/Scipy 2D 보간 (비 균일 한 데이터)
- 9. 파이썬 - 모든 비 문자를 제거하고 밑줄로 대체하는 효율적인 방법
- 10. C 데이터의 비 직렬화
- 11. 비 균일 분산 랜덤 배열
- 12. 파이썬 인코딩
- 13. /빈/SH - 파이썬
- 14. 파이썬 2.4에서 파이썬 2.7
- 15. 비 정렬 클래스 비 정렬 캐스팅 예외
- 16. Opengl 비 동기화/비 차단 MAP
- 17. 비 종료/비 차단 Windows Mobile App
- 18. 비 관계형 정확히 비 관계형 데이터베이스를 무엇
- 19. 파이썬
- 20. 파이썬
- 21. 파이썬
- 22. :: 파이썬
- 23. 파이썬 :
- 24. 파이썬
- 25. 파이썬
- 26. 파이썬
- 27. 파이썬 :
- 28. 파이썬
- 29. 파이썬
- 30. 파이썬
트위스트 사용, 나는 한 번 심지어 간단한 일 클라이언트 또는에 의해 폐쇄 된 연결 어떠했는지를 체크처럼 ...는 A의 고통, 이벤트 기반의 소켓 라이브러리 나 자신을 썼다 오류로 많은 문제가 발생할 수 있습니다. 소켓이 작동하는 방법에 대해 많은 것을 배우고 싶다면 그럴 가치가 있습니다.하지만 많은 시행 착오가 있습니다. –