Socket Function In Python

Function Name:

socket.socket(family=AF_INET, type= SOCK_STREAM, proto=0, fileno=None)


The socket function returns a new socket object. A socket is an end point of communication.  A socket returned by this method can be made either a server socket or a client socket by further customizing it.


For example, regardless of whether a socket was created with option SOCK_STREAM or SOCK_DGRAM the socket can be made as a server by calling bind() and accept() methods or bind() and recvfrom() methods. The first sequence is required for a TCP socket and the later is required for an UDP socket.


In case of TCP clients they can connect with TCP servers using connect() method. In case of UDP clients Data transmission from client to server or server to client is done by the methods send(), recv(), sendall(), sendto(), recvfrom() methods.


family – The valid values for addressFamily are AF_INET,  

         AF_INET6, AF_UNIX, AF_CAN, AF_RDS. The   

                   meaning of these address families and the scenarios under  

                   which they are used are given below:



For protocols based on IP addresses using IPv4. An IPv4 address consists of four numbers each ranging from 0 to 255 and each of them separated by a dot. IPv4 is a 32-bit number and supports up to 2 to the power 32   IP addresses.


For protocols using IPv6 addresses.

IPv6 addresses solve the limitation of number of IP addresses in IPv4 as they are represented as a 128-bit number.


Used for Unix domain protocols


Very shortly, various controllers and applications in automotive vehicles can talk using CANSockets and using the protocol family PF_CAN.AF_CAN is used while creating CANSockets.


Used for reliable datagram sockets.



type:  The valid values for socketType are socket.SOCK_STREAM,      

  socket.SOCK_DGRAM, socket.SOCK_RAW,   

     socket.SOCK_RDM and socket.SOCK_SEQPACKET.

     The meaning of these socket types and when to use which type 

     are given below:



Specifies a stream socket. Needs to be provided when a streaming connection based client or server is needed which will be used for reliable communication


Specifies an UDP socket.  This option needs to be provided while creating a datagram socket, which will be used in for datagram based unreliable communication.


Raw sockets allow customizing the TCP and IP layer headers of the packet. The kernel will not modify the packets from a raw socket.


Used in reliable datagram based communication though same ordering of packets are not guaranteed.


Used for reliable, sequence ordered datagram based communication.



proto: The default value is zero. It is typically omitted and used in cases like

                dealing with raw sockets as per the address family specified. If AF_CAN is specified as address family then either CAN_RAW or CAN_BCM can be passed.


Fileno: File descriptor of a socket. When this parameter is specified, the other

                parameters are ignored and a socket object as given by the File

                descriptor is returned. The socket object returned is not a duplicate of

                the original socket. 

Copyright 2019 ©