>백엔드 개발 >파이썬 튜토리얼 >Python의 소켓 UDP 통신 소개(예제 포함)

Python의 소켓 UDP 통신 소개(예제 포함)

不言
不言앞으로
2018-10-13 16:43:434350검색

이 기사는 Python의 소켓을 통한 UDP 통신에 대한 소개입니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

UDP

TCP는 안정적인 연결을 설정하는 것이며, 통신하는 양측 모두 스트림 형식으로 데이터를 보낼 수 있습니다. . TCP와 비교할 때 UDP는 연결이 없는 프로토콜입니다. UDP 프로토콜을 사용하는 경우에는 연결을 설정할 필요가 없으며, 상대방의 IP 주소와 포트 번호만 알면 데이터 패킷을 직접 보낼 수 있습니다. 하지만 닿을 수 있을지는 모르겠습니다.

UDP 프로토콜을 통해 데이터를 전송하는 방법을 살펴보겠습니다. TCP와 마찬가지로 UDP를 사용하는 통신 당사자도
클라이언트와 서버
소켓 구조로 나누어 UDP 통신을 구현합니다

Python의 소켓 UDP 통신 소개(예제 포함)#🎜🎜 #

UDP 서버

UDP를 사용하는 통신 주체도 TCP와 마찬가지로 클라이언트와 서버로 구분됩니다. 서버는 먼저 포트를 바인딩해야 합니다. 하지만 클라이언트의 연결을 모니터링할 필요는 없습니다

#server
import socket
#创建Socket时, SOCK_DGRAM 指定了这个Socket的类型是UDP。
server = socket.socket(type=socket.SOCK_DGRAM)
server.bind(('192.168.1.165',7890))
#不需要调用 listen() 方法, 而是直接接收来自任何客户端的数据
print('服务端已开启7890端口,正在等待被连接...')
#recvfrom() 方法返回数据和客户端的地址与端口, 这样, 服务器收到数据后,
#直接调用 sendto() 就可以把数据用UDP发给客户端
data,address = server.recvfrom(1024)
print("client>>",data.decode('utf-8'))
print("客户端连接的socket地址:",  address)
server.sendto(b'drink more water!',address)
server.close()

UDP 클라이언트

클라이언트가 UDP를 사용하는 경우 먼저 UDP 기반을 생성합니다. 소켓 이후에는 connect()를 호출할 필요 없이 sendto()를 통해 서버에 직접 데이터를 보냅니다

import socket
#创建Socket时, SOCK_DGRAM 指定了这个Socket的类型是UDP。
client = socket.socket(type=socket.SOCK_DGRAM)
send_data  =b'hello sheenstar'
client.sendto(send_data,('192.168.1.165',7890))
re_Data,address = client.recvfrom(1024)
print('server>>',re_Data.decode('utf-8'))
client.close()

테스트 결과

각각 두 개의 명령줄 사용 시작 서버 및 클라이언트 테스트

서버 시작

Python의 소켓 UDP 통신 소개(예제 포함)

UDP 통신 완료#🎜 🎜## 🎜🎜#

Python의 소켓 UDP 통신 소개(예제 포함)

위 내용은 Python의 소켓 UDP 통신 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제