Do you want to make a socket server app?

A server can be created using the module socket.

If you make a socket server, you can define your own application protocol. You can also use it to work with existing apps.

Related Course: Complete Python Programming Course & Exercises

The Algorithm

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

The example below starts a socket server on port 7000. You can use telnet or a socket client to connect to this port.

import socket
import sys

HOST = ''
PORT = 7000

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('# Socket created')

# Create socket on port
try:
s.bind((HOST, PORT))
except socket.error as msg:
print('# Bind failed. ')
sys.exit()

print('# Socket bind complete')

# Start listening on socket
s.listen(10)
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 )

s.close()

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

# Socket created
# Socket bind complete
# Socket now listening
# Connected to 127.0.0.1:40499

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