Python聊天同时读写

Python聊天同时读写,python,Python,我正在尝试建立一个客户端聊天,可以同时发送和读取消息 一个问题是,当我写一条信息时,如果其他人发送了某个信息,它会破坏我正在写的信息 另一个问题是原始输入会阻止用户阅读新消息。 我试图通过使用msvcrt解决这个问题,这会导致另一个问题(我看不到我正在编写的消息并对其进行编辑) 如何解决这3个问题 ==>编辑:不使用线程。我认为您可能需要异步套接字…这将使您能够在单个线程中处理发送和接收 在这里找你。这将允许您将其编码为“裸骨”(即保留大部分代码,只使用套接字) 另一个选择是使用。这有一些复杂性

我正在尝试建立一个客户端聊天,可以同时发送和读取消息

一个问题是,当我写一条信息时,如果其他人发送了某个信息,它会破坏我正在写的信息

另一个问题是原始输入会阻止用户阅读新消息。 我试图通过使用msvcrt解决这个问题,这会导致另一个问题(我看不到我正在编写的消息并对其进行编辑)

如何解决这3个问题


==>编辑:不使用线程。

我认为您可能需要异步套接字…这将使您能够在单个线程中处理发送和接收

在这里找你。这将允许您将其编码为“裸骨”(即保留大部分代码,只使用套接字)

另一个选择是使用。这有一些复杂性,它是一个完整的框架,但它给了你很多提升


您也可以尝试多线程。然而,这不是一件小事。

线程是一种选择吗?你能发布(至少部分)你必须给出的上下文吗?没有线程,而且我没有太多的代码编写,因为我正试图计划如何首先做每件事。提前计划是最好的方法。就个人而言,我更喜欢异步而不是线程…更容易调试…通常更难中断。我不是twisted的超级粉丝……但我自己喜欢构建很多东西……但其他人对此深信不疑。你能给我一个使用异步套接字的简单例子吗?看看异步python套接字页面的底部。您需要使用loop(),但要给它一个参数,这样它只运行几次,然后您的主程序就可以执行它需要执行的任何其他操作(例如,更新UI等)。我已经有一段时间没有做过这些了,所以手头没有可用的例子……但谷歌似乎有一些……非常感谢你的提示:)