파이썬 - 소켓 프로그래밍

소켓은 애플리케이션 층 인 인터페이스의 집합 추상화 계층을 통신하기 위해 중간 소프트웨어 TCP / IP 프로토콜 스위트. 디자인 모드에서, 소켓이의 복잡성, 실제로 외관 패턴 숨겨진 TCP / IP 프로토콜 제품군 사용자를위한 소켓 인터페이스 뒤에, 간단한 인터페이스는 모든 설정,하자입니다 소켓이 지정된 준수하기 위해 데이터를 구성하려면 계약.

그래서, 우리는 TCP / UDP 프로토콜에 대한 깊이있는 이해를 필요로하지 않는, 소켓이 우리에게 좋은 패키지를 가지고, 우리는 단지 자연의 TCP / UDP 표준을 따르는 프로그램을 작성, 프로그램 소켓의 규정을 따라야합니다.

 

# - 간단한 예는 TCP / IP 소켓 서버 측을 기반으로

# Tcp를이 링크를 기반으로, 먼저 서버를 시작하고 서버 링크에 클라이언트를 시작해야합니다

서버 초기화 다음 바인딩 포트, 소켓 (바인드), 포트에 수신 (청취), 전화 클라이언트 연결을 기다리는 블록에 동의합니다. 당신이 클라이언트가 시작하는 경우이 시점에서 소켓, 서버에 연결하는 연결이 성공하면 (연결), 다음 클라이언트를 연결하고 서버가 설정됩니다. 클라이언트는, 서버가 요청을 수신하고 상기 요청을 처리하고, 클라이언트가 데이터를 읽고, 마지막으로 접속을 종료, 클라이언트에 응답하여 데이터를 전송하는 데이터 요청을 송신 상호 작용의 일단

에서 소켓 수입 소켓 
ip_port = ( " 127.0.0.1 " , 8080 ) 
의 buf_size = 1024 

tcp_server = 소켓 (AF_INET, SOCK_STREAM) 
tcp_server.bind (ip_port) 
tcp_server.listen ( 5 ) 
CONN, ADDR = tcp_server.accpet () 
MSG = CONN .recv (의 buf_size)
 인쇄 ( " 收到客户端发送的消息" , msg.decode ( " UTF-8 " )) 
conn.send (msg.upper ()) 
conn.close () 
tcp_server.close ()
tcp_server 서버

# 간단한 예는 TCP / IP 소켓 클라이언트를 기반으로

 소켓 오기 * 
ip_port = ( " 127.0.0.1 " , 8080 ) 
의 buf_size = 1,024 
tcp_client = 소켓 (AF_INET, SOCK_STRAM) 
tcp_client.connect (ip_port) 
tcp_client.send ( " 안녕하세요 " 함수 .encode ( " UTF-8 " )) 
데이터 = client.recv (의 buf_size)
 인쇄 ( " 客户端收到消息" , data.decode ( " UTF-8 " )) 
tcp.client.close ()
tcp_client 클라이언트

 

UDP의 예에 따라 # 소켓 서버

# UDP는 끝이 오류가 시작되지 않습니다 더 링크입니다

에서 소켓 수입 * 
ip_port = ( " 127.0.0.1 " , 8080 ) 
의 buf_size = 1024 
udp_server = 소켓 (AF_INET, SOCK_DGRAM) 
udp_server.bind (ip_port) 
MSG, ADDR = udp_server.recvfrom (의 buf_size)
 인쇄 ( " 服务端收到消息" , msg.decode ( " UTF-8 " )) 
udp_server.sendto (msg.upper (), ADDR)
udp_server 서버

의 # UDP 소켓 기반 클라이언트 측 예

 소켓 오기 * 
ip_port = ( " 127.0.0.1 " , 8080 ) 
의 buf_size = 1,024 
udp_client = 소켓 (AF_INET, SOCK_DRGAM) 
udp_client.sendto ( " 안녕하세요 " 함수 .encode ( " UTF-8 " ), ip_port) 
데이터, ADDR = udp_client .recvfrom (BUFSIZE)
 인쇄 (data.decode ( " UTF-8 " ))
udp_client 클라이언트

 

추천

출처www.cnblogs.com/tangcode/p/11534052.html