파이썬 소켓 프로그래밍 예제

우리가 전에 설명 하 고 아래 볼 거 야, 소켓작업 상태 유지 포함. 클래스를 사용하면 모든 상태, 데이터 및 코드가 구성된 단위로 함께 번들로 묶입니다. 연결이 시작되거나 수락될 때 클라이언트와 서버의 각 소켓에 대해 클래스의 인스턴스가 만들어집니다. 다음으로 클래스 형식을 사용하여 소켓과 함께 포함하려는 데이터를 보유하는 개체를 만듭니다. 단순 네임 스페이스. 클라이언트 연결이 읽고 쓸 준비가 되면 알고 싶으므로 두 이벤트 모두 소켓에서 사용 중인 실제 주소를 보려면 getsockname() 메서드를 호출합니다. 서비스를 시작한 후 netstat를 다시 실행하면 모든 주소에서 들어오는 연결을 수신하는 것을 수신하는 것을 다시 볼 수 있습니다. 아무도코드의이 줄에 무슨 일이 일어나고 있는지 설명 해주시겠습니까? : “client_sock, 주소 = server.accept() ” 서버가 변수 클라이언트와 소켓을 모두 허용하는 방법은 무엇입니까? 이 샘플 프로그램은 표준 라이브러리 설명서의 설명서에 있는 설명서에 따라 들어오는 메시지를 수신하여 보낸 사람에게 다시 에코합니다. TCP/IP 소켓을 만들어 시작합니다. 그 대가로 세 가지 목록을 받게 됩니다. 여기에는 실제로 읽을 수 있고, 쓰기 가능하고, 오류가 있는 소켓이 포함되어 있습니다. 이러한 각 목록은 전달한 해당 목록의 하위 집합(비어 있을 수 있음)입니다.

그렇지 않은 경우 첫 번째 중지는 Python의 소켓 모듈 설명서여야합니다. 호출하는 각 함수 또는 메서드에 대한 모든 설명서를 읽어야 합니다. 또한 참조 섹션에서 아이디어를 읽으십시오. 특히 오류 섹션을 확인하십시오. 하단에 클라이언트와 서버가 각각의 소켓을 닫습니다. IPC의 다양한 형태 중, 소켓은 지금까지 가장 인기가 있습니다. 어떤 주어진 된 플랫폼에, 빠른 IPC의 다른 형태가 있을 가능성이 있다, 하지만 크로스 플랫폼 통신에 대 한, 소켓은 마을에서 유일한 게임에 대 한. 다음 예제에서는 포트 80에서 example.org TCP 연결에 대 한 주소 정보를 반환: 마지막 것은 process_request() 쓰기 이벤트를 모니터링 하는 선택기를 수정 하는 것입니다. 서버의 기본 스크립트인 app-server.py 소켓은 처음에는 읽기 이벤트만 모니터링하도록 설정됩니다. 이제 요청이 완전히 처리되었으므로 더 이상 읽기에 관심이 없습니다.

우리가 주어진 포트 12345 주어진 호스트에 대한 연결을 엽니 다 매우 간단한 클라이언트 프로그램을 작성하자. 이것은 파이썬의 소켓 모듈 기능을 사용하여 소켓 클라이언트를 만드는 것은 매우 간단합니다. 소켓 호출 차단은 비차단 모드로 설정하여 즉시 반환할 수 있습니다. 이렇게 하면 준비가 되면 소켓 작업을 처리하도록 응용 프로그램을 최소한 리팩터링하거나 다시 디자인해야 합니다. num_conns는 서버에 만들 연결 수인 명령줄에서 읽습니다. 서버와 마찬가지로 각 소켓은 비차단 모드로 설정됩니다. 청취 소켓은 소리가 나는 것처럼 보입니다. 클라이언트의 연결을 수신합니다. 클라이언트가 연결되면 서버는 연결을 수락하거나 완료하기 위해 accept()를 호출합니다. 서버 예제를 계속 사용하면 listen()을 사용하면 서버가 연결을 수락할 수 있습니다.

그것은 “듣기”소켓을 만든다: 서버에서이 방법을 복용의 장점은 대부분의 경우, 소켓이 정상이고 네트워크 문제가없는 경우, 그것은 항상 쓰기 수 있다는 것입니다. 그러나 추가 전송을 위해 소켓을 재사용하려는 경우 소켓에 EOT가 없다는 것을 깨달아야 합니다. 반복 : 소켓이 0 바이트를 처리 한 후 소켓을 보내거나 recv가 반환되면 연결이 끊어졌습니다. 연결이 끊어지지 않은 경우 소켓이 (지금은) 더 이상 읽을 것이 없다고 말하지 않기 때문에 recv를 영원히 기다릴 수 있습니다. 이제 조금 생각해 보면 소켓의 근본적인 진실을 깨닫게 될 것입니다: 메시지는 고정 길이(yuck) 또는 구분(shrug) 또는 연결을 종료하여 종료하는 기간을 표시해야 합니다.

Geplaatst in Geen categorie door admin. Zet de link bij je favorieten link.