在python套接字编程中,例如聊天,主要目的是继续接收来自他人的消息,同时接收他是否按任何键,程序应该接受输入并发送该消息而不是打印收到的消息。完成发送后,应该打印收到的消息。如何在不明确要求用户输入消息的情况下执行此操作?
感谢。
答案 0 :(得分:1)
如果我理解你的问题,你会想要使用某种形式的事件系统。将输入文本和接收消息视为事件。
http://en.wikipedia.org/wiki/Event_(computing)
由于此类内容是实时程序,因此您的程序将在循环中运行。在整个循环中,事件被放入队列中,并且在每个循环开始时,它们按触发顺序处理。
由于您正在使用网络,因此可能需要进行一些线程处理。由于Global Interpreter Lock,Python无法真正使用多线程来提升性能,但它仍然可以在后面进行I / O操作。这样,当您的聊天客户端(使用您的示例)试图获取其他人发送的消息时,该程序的其余部分不会冻结。这对于缓慢的互联网连接尤其有用。