Each Answer to this Q is separated by one/two green lines.
I made a simple server and a simple client with
socket module in python.
# server.py import socket s = socket.socket() host = socket.gethostname() port = 1234 s.bind((host, port)) s.listen(5) while True: c, addr = s.accept() print('Got connection from', addr) c.send(b'Thank you for your connecting') c.close()
#client.py import socket s = socket.socket() host = socket.gethostname() port = 1234 s.connect((host, port)) print(s.recv(1024))
I started the server and then started 4 clients and got output in server’s console as below:
Got connection from ('192.168.0.99', 49170) Got connection from ('192.168.0.99', 49171) Got connection from ('192.168.0.99', 49172) Got connection from ('192.168.0.99', 49173)
what is the second part in the tuple?
A pair (host, port) is used for the AF_INET address family, where host is a string representing either a hostname in Internet domain notation like ‘daring.cwi.nl’ or an IPv4 address like ‘188.8.131.52’, and port is an integer.
So the second value is the port number used by the client side for the connection. When a TCP/IP connection is established, the client picks an outgoing port number to communicate with the server; the server return packets are to be addressed to that port number.
Quote from python documentation:
Accept a connection. The socket must be bound to an address and listening for connections. The return value is a pair
(conn, address)where conn is a new socket object usable to send and receive data on the connection, and address is the address bound to the socket on the other end of the connection.
address is you can find in same doc from words “Socket addresses are represented as follows”.