Recvfrom() Function Of Python Socket Class

Method Signature/Syntax:

    socket.recvfrom(bufsize[, flags])


    bufsize - The number of bytes to be read from the UDP socket.

    flags      - This is an optional parameter. As supported by the operating system. Multiple values combined together using bitwise OR. The default                        value is zero.


Return Value:

Returns a bytes object read from an UDP socket and the address of the client socket as a tuple.


  • The recvfrom() method Python's socket class, reads a number of bytes sent from an UDP socket.
  • Like sendto(), the recvfrom() method as well is to be called on a UDP socket.
  • Unlike sendto(), the method recvfrom() does not take an IP address and port as a parameter.
  • The recvfrom() method can be used with an UDP server to receive data from a UDP client or it can be used with an UDP client to receive data from a UDP server.


Example – An UDP server that serves price information:

# ----- An example UDP client in Python that uses recvfrom() method -----

import socket

import random


# Give price

def getPrice(corpName):

    if(corpName == "Example Corporation"):

        price = random.uniform(27.0, 29.0);

        return price;


        return "NA";


# Create an UDP based server socket

socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM);

socket.bind(("", 4141));



    msgAndAddress = socket.recvfrom(1024);

    incName = msgAndAddress[0].decode();



    price = getPrice(incName);


    priceStr = "%.2f"%price;

    socket.sendto(priceStr.encode(), msgAndAddress[1]);



Example Corporation

2019-06-30 01:35:58.801308 28.44

Example Corporation

2019-06-30 01:36:00.150010 28.88


Example – An UDP client that asks for price information:

# ----- An example UDP client in Python that uses recvfrom() method -----

import socket


# Number of bytes to get

numBytes2Get = 1024;


# Create a UDP socket. UDP is datagram based.

destination         = ("", 4141);

udpClientSocket     = socket.socket(socket.AF_INET, socket.SOCK_DGRAM);


# Send quote request

sentBytesCount      = udpClientSocket.sendto("Example Corporation".encode(), destination);


# Use receivefrom() to get quote

receivedBytes  = udpClientSocket.recvfrom(numBytes2Get);


# Print the quote





Copyright 2019 ©