Python에서 UDP 패킷 보내기
오늘은 UDP(User Datagram Protocol)에 대해 알아보고 Python 프로그래밍을 사용하여 UDP 패킷을 보내는 방법을 알아봅니다.
Python에서 UDP 패킷 보내기
UDP(사용자 데이터그램 프로토콜)와 TCP/IP는 다르게 작동합니다. UDP는 모든 데이터가 적절한 순서로 전송되도록 하는 스트림 지향 프로토콜인 TCP와 달리 메시지 지향 프로토콜입니다.
UDP는 오랫동안 지속되는 연결이 필요하지 않기 때문에 UDP 소켓을 설정하는 것이 조금 더 쉽습니다. 반면에 TCP와 달리 UDP 메시지의 전달은 보장되지 않으며 단일 패킷 내에 맞아야 합니다.
파이썬에서 어떻게 할 수 있습니까? Python에는 import해야 하는 socket
이라는 내장 모듈이 있습니다.
import socket
socket
모듈을 가져온 후에는 UDP 메시지 전송을 시도할 포트 번호와 IP 주소를 지정해야 합니다.
IP = "127.0.0.1"
PORT = 5003
Message = "Info"
이러한 몇 가지 변수를 지정했으므로 UDP 메시지를 서버로 보낼 소켓
을 구축할 시간입니다.
Sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Sock.sendto(Message, (IP, PORT))
두 개의 파일을 만들어야 합니다. client.py
및 server.py
. 클라이언트 및 서버 파일은 모두 해당 서버 및 클라이언트 시스템에 있어야 합니다.
클라이언트 프로그램이 생성되면 다음 단계는 모든 UDP 패킷에 대해 지정된 IP 주소와 포트 번호를 모니터링하는 서버 프로그램을 만드는 것입니다.
클라이언트 Python 스크립트는 이 서버보다 먼저 실행되어야 합니다. 그렇지 않으면 클라이언트 Python 스크립트가 실패합니다.
socket
모듈을 가져오고 IP 주소와 포트 번호를 제공하면 클라이언트 응용 프로그램에서 만든 socket
과 정확히 유사한 또 다른 socket
을 만들 수 있습니다.
Server.py
파일의 예제 코드:
import socket
IP = "127.0.0.1"
PORT = 5003
MESSAGE = "The meeting is From 10 pm."
print(f"sending information")
print(f"{MESSAGE} to {IP}:{PORT}")
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(MESSAGE.encode(), (IP, PORT))
출력:
sending information
The meeting is From 10 pm. to 127.0.0.1:5003
또한 서버 socket
을 구축한 후 종료될 때까지 이 연결을 계속해서 수신하는 스크립트를 유지하는 코드를 작성해야 합니다.
아래와 같이 간단한 while
루프의 형태를 취합니다.
Client.py
파일의 예제 코드:
import socket
IP = "127.0.0.1"
PORT = 5003
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((IP, PORT))
print(f"start listening to {IP}:{PORT}")
while True:
data, addr = sock.recvfrom(1024)
print(f"received message: {data}")
출력:
start listening to 127.0.0.1:5003
received message: The meeting is From 10 pm.
이런 식으로 Python에서 UDP 패킷을 보낼 수 있습니다.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn