я хочу способ отправлять и получать сообщения одновременно python - PullRequest
0 голосов
/ 01 мая 2020

Я сделал два сценария клиент и сервер, чтобы они могли общаться между ними с помощью сокетов. все работает, но я хочу способ отправки (в коде: self.send (msg)) и получения сообщений (self.receive_msg ()) одновременно, но я не знаю, как это сделать. Может кто-нибудь, пожалуйста, помогите мне, пожалуйста приведите примеры, если это возможно.

это мой код клиента:

import socket

Client
Socket Programming


class Client:
    def __init__(self, IP, PORT, NAME):
        """Constants"""
        self.HEADER = 64
        self.FORMAT = 'utf-8'
        self.DISCONNECT = "quit"
        self.ADDR = (IP, PORT)
        self.BUFFER = 2048
        """Variables"""
        self.PORT = PORT
        self.IP = IP
        self.NAME = NAME
        """Client Initialisation"""
        self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.client.connect(self.ADDR)

    def send(self, msg):
        message = msg.encode(self.FORMAT)
        self.client.send(message)

    def receive_msg(self):
        print(self.client.recv(self.BUFFER).decode(self.FORMAT))

    def run(self):
        print("Welcome to the chat app")
        print("Type 'quit' to exit the program")
        self.send(self.NAME)
        self.receive_msg()
        while True:
            msg = input(">> ")
            if msg == "":
                continue
            self.send(msg)
            self.receive_msg()
            if msg == "quit":
                self.client.close()
                break


client = Client(IP="192.168.2.14", PORT=4400, NAME="Jenny")
client.run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...