#!/usr/bin/env python3.7 import socket class ChatConnection(object): def __init__(self, host: str, port: int, buffSize=4096, encoding='utf8'): self.soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.soc.connect((host, port)) self.buffSize = buffSize self.encoding = encoding self.isOpen = True def send(self, msg: str) -> None: """ Wrapper method of socket.send and encode the message to set character encoding. """ try: self.soc.send(bytes(msg, self.encoding)) except OSError: self.close() def recv(self) -> str: """ Wrapper method of socket.recv and encode the message to set character encoding. """ return self.soc.recv(self.buffSize).decode(self.encoding) def close(self) -> None: """ Wrapper method to close the socket """ self.soc.close() self.isOpen = False