2012-10-12 2 views
0

클라이언트가 서버에서받은 사용자 입력 및 데이터에 어떻게 반응 할 수 있습니까?소켓 프로그래밍 Python

여러 클라이언트를 처리 할 수 ​​있고 각 클라이언트로부터받은 데이터에 반응 할 수있는 UDP 서버를 만들었습니다. 지금까지 클라이언트는 사용자 입력에만 반응합니다.

클라이언트가 특정 포트의 사용자 입력과 데이터를 동시에 검사 할 수 있습니까?

+1

선택 또는 폴링 시스템 호출에 stdin 파일 설명자를 포함하십시오. – Keith

답변

1

다중 프로세스, 다중 스레드 등을 사용하여이를 구현하는 여러 가지 방법이 있지만 응용 프로그램에 가장 적합한 방법은 모든 요청을 "멀티 플렉스 (multi-plexes)"하여 가능한 한 각 요청을 처리하는 프로세스입니다. 그리고 그 해결책은 모든 프로그래밍 언어에서 사용할 수있는 select(), poll(), epoll()입니다. herehere을 읽으십시오.

0

스레드 사용을 고려하십시오. 파이썬 스레딩은 제한되어 있습니다. 인터프리터 내에서 한 번에 하나의 스레드 만 실행되지만 스레드가 입출력 (또는 '절전')을 기다리고 있으면 다른 스레드가 실행될 수 있습니다. 여전히 큐와 세마포어 등을 사용해야합니다. 라이브러리의 'threading'모듈을 참조하십시오.