Общение между сокетами
Написал класс, объект которого подключается к сокету другого софта.
Технически, все работает, я могу посылать что-то и, соответственно, получать что-то.
Но вот беда - не из под экземпляра.
import socket
class Handler(object):
def __init__(self):
self.conn = socket.socket()
self.conn.connect(("127.0.0.1", 12701))
def __new__(cls):
if not hasattr(cls, 'instance'):
cls.instance = super(Handler, cls).__new__(cls)
return cls.instance
def send(self, data: str) -> tuple:
print('SEnding')
self.conn.send(
(data + "\n").encode('UTF-8')
)
print('Waiting for repl')
repl = self.conn.recv(1024).decode('UTF-8')
print('Got repl')
return repl == 'OK', repl
При попытке отправить тестовый запрос из конструктора - все работает. Реквест уходит, репл приходит.
Но через метод не выходит.
Мои действия:
- Создал файл, в котором создал переменную
SERVICE_BRIDGEи запихнул в нее экземпляр. Специально реализовалSingletonчтобы не было приколов. - Импортирую
SERVICE_BRIDGEвn-оеместо для дальнейшей работы. - Вызываю метод
send.