import socket as s from logging import Logger from abc import ABC, abstractmethod class SocketClient(ABC): ip: str = "" port: int = 0 socket: s.socket logger: Logger def __init__(self, ip: str, port: int, logger: Logger): if port <= 0 or port > 65535: raise ValueError("Port out of range.") self.ip = ip self.port = port self.logger = logger @abstractmethod def Connect(self) -> bool: pass @abstractmethod def Reconnect(self) -> bool: pass @abstractmethod def Send(self, data: str): pass