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

不言
풀어 주다: 2018-10-13 16:45:03
앞으로
4339명이 탐색했습니다.

이 기사는 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿