Socket Server (Network)

A server can be created using sockets. Sockets work on the application layer, it does not specify any protocol and on this level you’d define an application protocol yourself.

Creation of a socket server needs these steps:

  • bind socket to port
  • start listening
  • wait for client
  • receive data

Example socket server

import socket
import sys
HOST = ''  
PORT = 7000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('# Socket created')
# Create socket on port
    s.bind((HOST, PORT))
except socket.error as msg:
    print('# Bind failed. ')
print('# Socket bind complete')
# Start listening on socket
print('# Socket now listening')
# Wait for client
conn, addr = s.accept()
print('# Connected to ' + addr[0] + ':' + str(addr[1]))

# Receive data from client
while True:     
    data = conn.recv(1024)
    line = data.decode('UTF-8')    # convert to string (Python 3 only)
    line = line.replace("\n","")   # remove newline character
    print( line )     

Once run, a server will be running on localhost port 7000.

# Socket created
# Socket bind complete
# Socket now listening
# Connected to

Once running it will wait for messages. To connect with it, use telnet or modify the socket client from the previous section.