123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- import socket
- import threading
- import config as cfg
- LenFunc = cfg.LenFunc
- class SocketHTTP(threading.Thread):
- def __init__(self, HOST,PORT, parent):
- try:
- self.parent = parent
- super(SocketHTTP,self).__init__(None,None,None,None)
- self.port = PORT
- self.Host = HOST
- self.history = []
- self.socket = socket.socket()
- self.socket.connect((HOST, PORT))
- t = threading.Thread(target=self.receive)
- t.start()
- print("socket is created and Listener is created\n",(HOST, PORT))
- except:
- print("\33[41m\33[41mAn exception occurred SocketHTTP\33[0m" )
- def send(self,M):
- try:
- self.socket.sendall(M)
- self.history.append(("send",M))
- print("\033[91m\n\t Send -> ",M,"\n\033[0m")
- except:
- print("\33[41m\33[41mAn exception occurred SocketHTTP send\33[0m" )
- def receive(self):
- try:
- while True:
- data = self.socket.recv(65565)
- # print("data",data)
- if bytes.hex(data) == "":
- continue
- self.parent.recv(bytes.hex(data))
- except NameError:
- print("\33[41m\33[41mAn exception occurred SocketHTTP receiv e NameError\33[0m",NameError )
- class SocketClient(threading.Thread):
- def __init__(self, HOST,PORT, parser,id):
- try:
- self.parser = parser
- super(SocketClient,self).__init__(None,None,None,None)
- self.port = PORT
- self.Host = HOST
- self.history = []
- self.id = id
- self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.socket.connect((HOST, PORT))
- t = threading.Thread(target=self.receive)
- t.start()
- print("socket is created and Listener is created\n")
- except:
- print("\33[41m\33[41mAn exception occurred SocketClient\33[0m" )
- def send(self,M):
- try:
- Message=bytes(M,'utf-8')
- self.socket.sendall(Message)
- self.history.append(("send",Message))
- print("\033[91m\n\t Send -> ",M,"\n\033[0m")
- except:
- print("\33[41m\33[41mAn exception occurred socket Client send\33[0m" )
- def receive(self):
- try:
- while True:
- len = self.socket.recv(cfg.LenFunc)
- if not len:
- break
- data = self.socket.recv(int(len.decode("utf-8")))
- data = self.parser.toJSON(data.decode("utf-8"))
- print("\033[94m\n\t receive -> ",data,"\n\033[0m")
- self.parser.parser(data,None,self)
- except:
- print("\33[41m\33[41mAn exception occurred socket Client receive\33[0m" )
- class SocketServer():
- def __init__(self, socketPort, parser,id):
- try:
- self.parser = parser
- self.history = []
- self.connected = []
- self.socketPort = socketPort
- self.id = id
- t = threading.Thread(target=self.connection)
- t.start()
- print("socket is created and Listener is created",socketPort)
- except:
- print("\33[41m\33[41mAn exception occurred SocketServer\33[0m" )
- def connection(self):
- try:
- with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
- s.bind(("localhost", self.socketPort))
- s.listen()
- self.socket = s
- while True:
- conn, addr = self.socket.accept()
- print("user connected to ",conn, "-> ",addr)
- u = Connection(conn, addr,self.socketPort+1,self.parser)# TODO socketprot dynamic
- self.connected.append(u)
- print(self.connected)
- except Exception as exception:
- print("\33[41m\33[41mAn exception occurred SocketServer connection ",exception,"\33[0m" )
- class Connection():
- def __init__(self,connection,address,oracleSocketPort, parser):
- try:
- self.parser = parser
- self.socket = connection
- self.addr = address
- self.history = []
- self.type = None
- # self.id = os.urandom(32)
- self.oracleSocketPort = oracleSocketPort
- t = threading.Thread(target=self.receive)
- t.start()
- # self.send("Connection")
- except:
- print("\33[41m\33[41mAn exception occurred Connection connection\33[0m" )
-
- def send(self,M):
- try:
- Message=bytes(M,'utf-8')
- self.socket.sendall(Message)
- self.history.append(("send",Message))
- print("\033[91m\n\t Send -> ",M,"\n\033[0m")
- except:
- print("\33[41m\33[41mAn exception occurred Connection sebd\33[0m" )
- def receive(self):
- try:
- while True:
- len = self.socket.recv(cfg.LenFunc)
- if not len:
- break
- print(int(len.decode("utf-8")))
- data = self.socket.recv(int(len.decode("utf-8")))
- data = self.parser.toJSON(data.decode("utf-8"))
- print("\033[94m\n\t receive -> ",data,"\n\033[0m")
- self.parser.parser(data,None,self)
- except :
- print("\33[41m\33[41mAn exception occurred Connection receive\33[0m" )
|