Creation of socket server needs following steps:
- bind socket to port
- start listening
- wait for client
- receive and send data
Sample Code for Socket Server
import socket
import sys
from thread import *
import logging
host = ''
port = 8001
logging.basicConfig(level=logging.DEBUG)
#initiate socket creating
logging.info('# creating socket')
s = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
logging.debug('# created socket : ' + str(s))
try:
s.bind((host, port))
except socket.error as message:
logging.error('# socket binding failed : ' + str(message))
sys.exit()
logging.info('# socket binding success')
#start listning on socket
s.listen(5)
logging.info('# socket listning')
#handler for client threads
def client_thread_handler(conn):
#sending msgs to connected clients
conn.send('hi... u r now connected')
#loop for not terminate or end thread
while True:
data = conn.recv(1024)
print(data)
if str(data) == 'exit':
logging.info('# exiting from thread')
break
reply = 'reply... ' + data
conn.sendall(reply)
conn.close()
#waiting for data from client
while True:
conn, addr = s.accept()
logging.info('# connected to : ' + str(addr))
start_new_thread(client_thread_handler, (conn,))
s.close()
After running the server will run on the localhost port 8001.
To test this you can create a socket client or telnet to port 8001.
Testing with telnet type following in shell:
telnet localhost 8001
