Python socket 에서 실 현 된 간단 한 통신 기능 예시

2443 단어 Python소켓 통신
이 글 은 Python socket 이 실현 하 는 간단 한 통신 기능 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
소켓(socket)은 컴퓨터 네트워크 데이터 구조 입 니 다.어떤 종류의 통신 이 시작 되 기 전에 네트워크 응용 프로그램 은 소켓 을 만들어 야 합 니 다.전화의 소켓 에 비유 할 수 있 습 니 다.없 으 면 통신 할 수 없습니다.
자주 사용 하 는 주소 가족
  • AF_UNIX:파일 기반 으로 같은 호스트 의 서로 다른 프로 세 스 간 통신
  • 실현
  • AF_INET:네트워크 기반 IPv 4
  • 에 적용
  • AF_INET 6:네트워크 기반 IPv 6
  • 에 사용
    일반적인 연결 유형
  • SOCK_STREAM:즉 TCP/IP 입 니 다.연결 을 위 한 소켓 은 통신 하기 전에 신뢰 할 수 있 는 연결 을 만들어 야 합 니 다.연결 되 어 있 는 소켓 에 경 계 를 기록 하지 않 고 직렬 화 되 고 신뢰성 있 으 며 중복 되 지 않 는 데 이 터 를 제공 합 니 다.
  • SOCK_DGRAM:즉 UDP 입 니 다.비 연결 을 위 한 소켓 은 통신 전에 연결 을 만 들 필요 가 없습니다.데이터 전송 과정 에서 데이터 의 질서 성,신뢰성 과 중복 성 을 보장 할 수 없다.그러나 데이터 신문 은 기록 경 계 를 저장 한 것 은 데이터 가 여러 세 션 을 미리 자 르 는 것 이 아니 라 전체 로 보 내 는 것 을 의미한다.
  • 소켓 통신
  • server 엔 드
  • 
    import socket
    server = socket.socket()  #    AF_INET、SOCK_STREAM
    server.bind(("localhost",6868))   #              
    server.listen()   #      TCP   
    while True:
      conn,addr = server.accept()   #     TCP  ,        
      while True:
        data = conn.recv(1024)   #   TCP  ,       
        if not data:
          print("     ")
          break
        conn.send(data.upper())  #                 
    server.close()
    
    
  • client 단자
  • 
    import socket
    client = socket.socket()  #    AF_INET、SOCK_STREAM
    client.connect(("localhost",6868))
    while True:
      s = input(">>")
      client.send(s.encode("utf-8"))
      data = client.recv(1024)
    client.close()
    
    
    실행 결과:

    socketserver 모듈
    socketserver 를 사용 하여 다 중 동시 다발 을 실현 합 니 다.
    
    import socketserver
    class MyServer(socketserver.BaseRequestHandler):
      def handle(self):
        while True:
          self.data = self.request.recv(1024)
          if not self.data:
            print("%s        "%self.client_address)
            break
          self.request.sendall(self.data.upper())
    if __name__ == "__main__":
      server = socketserver.ThreadingTCPServer(("localhost",6969),MyServer)  #       
      server.serve_forever() 
    
    
    더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
    본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기