Size: a a a

2020 December 04

EB

Evgenii B in Rude QA
источник

b

betzy in Rude QA
Игорь Середа
И где ты используешь connect?
В примере нигде, я пробовал разные версии.
источник

EB

Evgenii B in Rude QA
Zewa 🚽 Expert
Никогда не понимал питон синтаксис, ппц. Даже пых симпатичнее
источник

IS

Idi Suda in Rude QA
Evgenii B
2020
> слушать Рогана
А чего такое-то
источник

IS

Idi Suda in Rude QA
betzy
Ану, посоны, задачка на ночь. Как захуярить такой TCP клиент:

import socket


class Client:
   def __init__(self, host, port):
       self.host = host
       self.port = port
       self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

   def connect(self):
       self.sock.connect((self.host, self.port))

   def close(self):
       self.sock.close()

   def send_cmd(self, message: str) -> str:
       self.sock.send(message.encode("utf-8"))
       result = self.sock.recv(64)
       return result.decode()


client = Client("", 8888)

print(client.send_cmd("test command"))
print(client.send_cmd("test command"))
print(client.send_cmd("test command”))


чтобы его можно было переиспользовать? Не могу врубиться, когда надо открывать и когда закрывать коннекшен, чтобы можно было отправлять дохуища команд
Сделай контекстным менеджером его
источник

M

Merg in Rude QA
betzy
Не ну понятно, у меня первый меседж отправляется, но остальные нет.
print(client.sock._closed) выведи после первого запроса
источник

M

Merg in Rude QA
ой, ну ты понял, короче
источник

b

betzy in Rude QA
import socket


class Client:
   def __init__(self, host, port):
       self.host = host
       self.port = port
       self.conn = None

   def send_cmd(self, message: str) -> str:
       self.conn.send(message.encode("utf-8"))
       result = self.conn.recv(64)
       return result.decode()

   def __enter__(self):
       conn = socket.create_connection((self.host, self.port))
       self.conn = conn
       return self

   def __exit__(self, exc_type, exc_value, exc_traceback):
       self.conn.close()


with Client("", 8888) as client:
   print(client.send_cmd("test command"))
   print(client.send_cmd("test command"))
   print(client.send_cmd("test command"))
источник

b

betzy in Rude QA
Сделол, но один хуй почему-то один меседж отправляется.
источник

b

betzy in Rude QA
❯ python client.py
test command
источник

b

betzy in Rude QA
источник

ΙΤ

Ιωάννης Τσεκούρι... in Rude QA
Ну наконец-то нормальные игры
источник

ΙΤ

Ιωάννης Τσεκούρι... in Rude QA
Просто скрин с кастомизацией пенисов в Киберпанке, приятной игры через неделю
источник

EB

Evgenii B in Rude QA
Там вроде чем меньше член тем больше харизма
источник

ИС

Игорь Середа... in Rude QA
betzy
import socket


class Client:
   def __init__(self, host, port):
       self.host = host
       self.port = port
       self.conn = None

   def send_cmd(self, message: str) -> str:
       self.conn.send(message.encode("utf-8"))
       result = self.conn.recv(64)
       return result.decode()

   def __enter__(self):
       conn = socket.create_connection((self.host, self.port))
       self.conn = conn
       return self

   def __exit__(self, exc_type, exc_value, exc_traceback):
       self.conn.close()


with Client("", 8888) as client:
   print(client.send_cmd("test command"))
   print(client.send_cmd("test command"))
   print(client.send_cmd("test command"))
А куда отправляешь-то?
источник

b

betzy in Rude QA
Игорь Середа
А куда отправляешь-то?
import socketserver


class EchoTCPHandler(socketserver.BaseRequestHandler):
   def handle(self):
       data = self.request.recv(1024).strip()
       print(f"client address: {self.client_address[0]}")
       print(f"message: {data.decode()}")
       self.request.sendall(data)


if __name__ == "__main__":
   with socketserver.TCPServer(("", 8888), EchoTCPHandler) as server:
       server.serve_forever()
источник

ИС

Игорь Середа... in Rude QA
Бля, изобретаешь вебсервер. И чё ты не захотел либу для gRPC взять, как я тебе сегодня советовал...
источник

b

betzy in Rude QA
Я не изобретаю веслосипед, я исхожу и требований девайса. Там открыт ебучий коннекшен будет. Мне надо для начала просто сделать мок сервер, чтобы я мог писать под него клиент, т.к. на дивайсе сервера еще нет.
источник

EB

Evgenii B in Rude QA
Simplehttpserver уже не роляет?
источник

b

betzy in Rude QA
источник