Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 데이터그램

<시간/>

데이터 덩어리는 사용자 데이터그램 프로토콜 또는 UDP 프로토콜을 사용하여 클라이언트와 서버 간에 이동합니다. 두 통신 끝점은 통신을 설정하기 위해 IP 주소와 포트 번호가 필요합니다. 한쪽 끝점을 보낸 사람이라고 하고 다른 쪽 끝을 받는 사람이라고 합니다. 이 프로토콜에서 발신자는 전송된 패킷을 추적하지 않으며 모든 패킷을 수락할지 여부는 수신자에게 달려 있습니다.

발신자 프로그램

아래의 파이썬 프로그램은 소켓 모듈을 사용하여 발신자의 프로그램을 생성합니다. IP 주소와 포트에 대한 변수를 선언합니다. 그런 다음 메시지를 추가합니다. sendto()는 메시지를 IP 주소 및 포트 번호와 결합하는 데 사용됩니다.

import socket

UDP_IP = "localhost"
UDP_PORT = 5050
MESSAGE = "Hello UDP! "

print ("Sent Message: ", MESSAGE)

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(bytes(MESSAGE, "utf-8"), (UDP_IP, UDP_PORT))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Sent Message: Hello UDP!

수신자 프로그램

마찬가지로 발신자 프로그램이 보낸 메시지를 수신하는 수신자 프로그램을 만듭니다. 아래 프로그램의 메시지 크기는 1024바이트로 제한됩니다. bind() 함수는 수신된 데이터에 IP와 포트를 바인딩합니다.

import socket

UDP_IP = "localhost"
UDP_PORT = 5050

s= socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((UDP_IP, UDP_PORT))

while True:
   # buffer size is 1024 bytes
   data, addr = sock.recvfrom(1024)
   print("Received message:", data)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Received message: Hello UDP!