나는 여러 클라이언트 요청을 수신 한 후 응답을 UDP 패킷 (포트 53)으로 보낼 수있는 다중 스레드 서버를 파이썬으로 작성하려고합니다. 이 모든 스레드가 동시에 53을 사용할 수 있는지 궁금합니다. 고마워. (이 질문은 어리석은 것처럼 보일지 모르지만 나는 초보자이다.)하나 이상의 스레드가 동일한 포트를 사용할 수 있습니다.
1
A
답변
0
하지 마십시오. 대신 Twisted을 사용하십시오. 이미 모든 일을 처리했습니다.
3
'재사용 포트'옵션을 지정하면 여러 수신 대기 소켓을 동일한 포트에 바인딩 할 수 있습니다. 하지만 내 경험으로도 소켓 중 하나만 패킷을받습니다 (멀티 캐스트 패킷을 수신하지 않는 한). 당신이 '멀티 스레드 서버'에 대해 이야기 할 때
mySocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
일반적으로하지만, 당신은 연결을 수신 서버 소켓이 (TCP 이상하지 UDP를)는 '연결 지향'프로토콜을 사용하여 서버에 대해 얘기하고 연결이 형성되면 처리 할 스레드를 생성합니다.
다중 스레드 UDP 서버의 경우, 요청을 대기열에 넣고 대기열에서 끌어와 작업을 수행하는 여러 개의 스레드가있는 단일 소켓이있을 수 있습니다. 스레드 자체는 소켓을 다룰 필요가 없습니다.
(참고 : 플랫폼에 따라, 당신은 대신에 SO_REUSEADDR을 사용해야 할 수있는 일부 정보 here..)
관련 문제
- 1. 스레드가 하나 이상의 ThreadAbortException을 던질 수 있습니까?
- 2. 스레드가 둘 이상의 인수를 가질 수 있습니까?
- 3. Android 애플리케이션에서 하나 이상의 기본 활동이 존재할 수 있습니다.
- 4. 단위 테스트에서 하나 이상의 모의 객체를 사용할 수 있습니까?
- 5. 동일한 NSString에 둘 이상의 NSCharacterSet 객체를 사용할 수 있습니까?
- 6. 하나 이상의 HTML 파일에 하나 이상의 CSS 스타일 시트 사용
- 7. 하나 개 이상의 필드
- 8. XSD 디자인 - 하나 이상의 규칙
- 9. 하나 이상의 테이블을 Mysqldump합니까?
- 10. Lucene.Net에서 IndexSearcher의 동일한 인스턴스를 여러 스레드가 동시에 사용할 수 있습니까?
- 11. 하나 이상의 iPhone에서 테스트 할 수 없습니다.
- 12. JMS - 하나 이상의 소비자로 이동
- 13. 하나 이상의 tickbox 하나 개의 DB 컬럼
- 14. pywinauto : 하나 이상의 응용 프로그램 창을 가지고 있습니다.
- 15. 동일한 값을 가진 여러 행을 하나 이상의 더하기로 결합 ... Excel에서
- 16. 하나 이상의 앱에 맞춤 URL 애플리케이션과 동일한 URL 식별자가 있습니까?
- 17. 동일한 ID를 가진 쿼리 문자열과 함께 하나 이상의 값을 전달합니다.
- 18. android에서 동일한 Activity에서 둘 이상의 SurfaceView를 사용할 수 있습니까?
- 19. 하나 이상의 데이터베이스를 선택하는 방법
- 20. 하나 이상의 응용 프로그램에 동일한 Linux 사용자 ID를 부여하려면 어떻게합니까?
- 21. 둘 이상의 스레드가 필드에 액세스 할 수 있으면 volatile로 표시해야합니까?
- 22. Ninject : 둘 이상의 일치하는 바인딩을 사용할 수 있습니다.
- 23. ClickOnce 오류 : 매니페스트 ID에 하나 이상의 잘못된 문자가 있습니다.
- 24. 하나 이상의 최상위 TreeNode가 가능합니까?
- 25. 하나 이상의 모델과리스트 뷰의 연관
- 26. 어떻게 하나 개 이상의 테이블에서
- 27. 하나 이상의 행이있는 SQL 구문
- 28. 하나 이상의 인수를 전달하는 Actionmailer
- 29. 하나 이상의 테이블에서 데이터를 표시
- 30. 하나 이상의 보존 문서 제거
Downvoter : 당신이 포스터가 아니라 자신의 일을 발명보다 트위스트 사용해야 거부합니까? –