Skip to content

Instantly share code, notes, and snippets.

@hackerdem
Created May 13, 2016 15:29
Show Gist options
  • Save hackerdem/a86f4f8cb069464dd97efad5d4dc407c to your computer and use it in GitHub Desktop.
Save hackerdem/a86f4f8cb069464dd97efad5d4dc407c to your computer and use it in GitHub Desktop.
Chat client and server application in python
import socket, sys, threading
PORT = 4444
class ChatServer(threading.Thread):
def __init__(self, port, host='192.168.1.3'):
threading.Thread.__init__(self)
self.port = port
self.host = host
self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.users = {}
try:
self.server.bind((self.host, self.port))
except socket.error:
print('Bind failed %s' % (socket.error))
sys.exit()
self.server.listen(10)
def exit(self):
self.server.close()
def run_thread(self, conn, addr):
print('Client connected with ' + addr[0] + ':' + str(addr[1]))
while True:
data = conn.recv(1024)
reply = b'OK...' + data
print(reply)
conn.sendall(reply)
conn.close()
def run(self):
print('Waiting for connections on port %s' % (self.port))
while True:
conn, addr = self.server.accept()
threading.Thread(target=self.run_thread, args=(conn, addr)).start()
class ChatClient(object):
def __init__(self, port, host='192.168.1.3'):
self.host = host
self.port = port
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.connect((self.host, port))
def send_message(self, msg):
pass
if __name__ == '__main__':
server = ChatServer(PORT)
server.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment