You are on page 1of 2

import sys

import socket
import threading

class Chat_Client:
END_CONVO = "Farewell"

def __init__(self):

self.SERVER_ADDR = "10.0.2.50"
self.SERVER_PORT = 12013
self.ADDR = (self.SERVER_ADDR, self.SERVER_PORT)
self.end_chat = False
self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Receives messages from server


def recv_msg(self):

while not self.end_chat:


msg = self.client_socket.recv(1024).decode()
if msg.lower() == self.END_CONVO.lower():
self.end_chat = True
break
elif msg:
print(msg)

# User is prompted for message


def send_msg(self):

while True:
msg = input("")
self.client_socket.send(msg.encode())

# Thread for messaging and received messages


def start_client(self):

# server connection
try:
print("Connecting to chat server: {0}:{1}...".format(self.ADDR[0], self.ADDR[1]))
self.client_socket.connect(self.ADDR)
except socket.error as e:
print("An unexpected failure occured, {}".format(str(e)))
print("Please enter correct server and port addresses")
sys.exit(1)

print("Now connected to {0}:{1}".format(self.ADDR[0], self.ADDR[0]))

# Message sent to server


send_thread = threading.Thread(target=self.send_msg)
send_thread.start()

self.recv_msg()

# closes client
self.client_socket.close()
sys.exit(0)
if __name__ == "__main__":
print("Chat Client has now begun..")
app = Chat_Client()
app.start_client()
sys.exit(0)

You might also like