Working with UDP sockets
Unlike TCP, UDP doesn't check for errors in the exchanged datagram. We can create UDP client/servers similar to the TCP client/servers. The only difference is you have to specify SOCK_DGRAM instead of SOCK_STREAM when you create the socket object.
Let us create a UDP server. Use the following code to create the UDP server:
from socket import socket, AF_INET, SOCK_DGRAM
maxsize = 4096
sock = socket(AF_INET,SOCK_DGRAM)
sock.bind(('',12345))
while True:
data, addr = sock.recvfrom(maxsize)
resp = "UDP server sending data"
sock.sendto(resp,addr)Now, you can create a UDP client to send some data to the UDP server, as shown in the following code:
from socket import socket, AF_INET, SOCK_DGRAM
MAX_SIZE = 4096
PORT = 12345
if __name__ == '__main__':
sock = socket(AF_INET,SOCK_DGRAM)
msg = "Hello UDP server"
sock.sendto(msg.encode(),('', PORT))
data, addr = sock.recvfrom(MAX_SIZE)
print("Server says:")
print(repr(data))In the preceding...