본문 바로가기
Python

[Python] UDP 예제

by 돌맹96 2023. 6. 25.
728x90
반응형

UDP는 User Datagram Protocol의 약자이다.

UDP의 동작원리는 사용자 PC에서 요청하면 확인절차 이런거 없이 바로 응답, 전송을 실행한다. 호스트간에 신뢰성과 완전성이 없다고 볼 수 있지만, 이 불안전한걸 왜 써? 라고 물어봤을때 속도적 측면에서 빨라서 사용한다고 볼 수 있다. 단점은 패킷 손실이 있다고 볼 수 있는데, 하나의 패킷도 손실되면 안되는 프로토콜에서는 사용하기 힘들고 동영상이나, 소리쪽에서 자주 이용하는 편이다.

 

 파이썬을 통해 간단한 예제로 살펴보자.

[클라이언트]

from socket import *

serverName = 'localhost'

serverPort = 65000

clientSocket = socket(AF_INET, SOCK_DGRAM)

message = input('Input lowercase sentence:')

clientSocket.sendto(message.encode(), (serverName, serverPort))

modifiedMessage, serverAddress =  clientSocket.recvfrom(2048)

print (modifiedMessage.decode())

clientSocket.close()

[서버]

from socket import *

serverPort = 65000

serverSocket = socket(AF_INET, SOCK_DGRAM)

serverSocket.bind(('', serverPort))

print ('The server is ready to receive')

while True:

    message, clientAddress = serverSocket.recvfrom(2048)

    modifiedMessage = message.decode().upper()

    serverSocket.sendto(modifiedMessage.encode(),

                                      clientAddress)
728x90
반응형