除非输入

时间:2019-11-05 09:20:21

标签: python multithreading sockets

我在聊天服务器上工作,其中1个线程用于发送消息,1个线程用于显示。 目前我被卡住了。一切正常,除了显示线程正在等待显示命令。 例如,我键入“发送OtherUser hihi”,然后按Enter。 OtherUser控制台不显示任何内容。 但是,如果OtherUser键入某些内容并按Enter键,则会显示该消息。

反正有解决此问题的方法吗?谢谢。

如果我的问题不清楚,请您发表评论,以便我重新表述。谢谢。

我的代码

class ServerThread(Thread):
 
def __init__(self,socket):
    Thread.__init__(self)
    self.socket = socket
    
    print ("New thread started for write")

def run(self):
    while True:
        try:
            command = input("Enter command: ")
            self.socket.send(bytes(str(command), "utf8"))
            #chat=self.socket.recv(BUFFER_SIZE).decode("utf8")
            #print(chat)
        except OSError:
            continue

class ServerThreadread(Thread):
 
def __init__(self,socket):
    Thread.__init__(self)
    self.socket = socket     
    print("New thread started for chat display")

def run(self):
    
    s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s2.connect((TCP_IP, TCP_PORT2))
    s2.setblocking(0)
    while True:
        try:
            chat=s2.recv(BUFFER_SIZE).decode("utf8")
            print(chat)
            #time.sleep(5)
        except OSError:
            continue

0 个答案:

没有答案