UDP - Client And Server Example Programs In Python

UDP Overview:

UDP is the abbreviation of User Datagram Protocol. UDP makes use of Internet Protocol of the TCP/IP suit. In communications using UDP, a client program sends a message packet to a destination server wherein the destination server also runs on UDP.

Overview of UDP based interaction between client and server

Properties of UDP:

  • The UDP does not provide guaranteed delivery of message packets. If for some issue in a network if a packet is lost it could be lost forever.
  • Since there is no guarantee of assured delivery of messages, UDP is considered an unreliable protocol.
  • The underlying mechanisms that implement UDP involve no connection-based communication. There is no streaming of data between a UDP server or and an UDP Client.
  • An UDP client can send "n" number of distinct packets to an UDP server and it could also receive "n" number of distinct packets as replies from the UDP server.
  • Since UDP is connectionless protocol the overhead involved in UDP is less compared to a connection based protocol like TCP.

UDP Client Server Communication

Example: UDP Server using Python

import socket


localIP     = ""

localPort   = 20001

bufferSize  = 1024


msgFromServer       = "Hello UDP Client"

bytesToSend         = str.encode(msgFromServer)


# Create a datagram socket

UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)


# Bind to address and ip

UDPServerSocket.bind((localIP, localPort))


print("UDP server up and listening")


# Listen for incoming datagrams


    bytesAddressPair = UDPServerSocket.recvfrom(bufferSize)

    message = bytesAddressPair[0]

    address = bytesAddressPair[1]

    clientMsg = "Message from Client:{}".format(message)
    clientIP  = "Client IP Address:{}".format(address)


    # Sending a reply to client

    UDPServerSocket.sendto(bytesToSend, address)



UDP server up and listening

Message from Client:b"Hello UDP Server"

Client IP Address:("", 51696)


Example: UDP Client using Python

import socket


msgFromClient       = "Hello UDP Server"

bytesToSend         = str.encode(msgFromClient)

serverAddressPort   = ("", 20001)

bufferSize          = 1024


# Create a UDP socket at client side

UDPClientSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)


# Send to server using created UDP socket

UDPClientSocket.sendto(bytesToSend, serverAddressPort)


msgFromServer = UDPClientSocket.recvfrom(bufferSize)


msg = "Message from Server {}".format(msgFromServer[0])






Message from Server b"Hello UDP Client"



Copyright 2024 © pythontic.com