1

为了练习和娱乐,我正在开发一个连接到在线服务的小型 Python 聊天客户端。聊天允许其他用户看到主要用户何时打字。我希望其他用户看到程序的用户何时正在输入要发送给他们的内容。

>>>Stranger: Hello, user.
>>>Hello, how are y...

这可能会将变量hasSomethingEntered设置为 True,因为正在输入某些内容,而

>>>Stranger: Hello, user.
>>>

会将变量hasSomethingEntered设置为 False,因为用户尚未在输入框中输入任何内容。然后这个变量将被传递到一个单独的线程中,该线程与服务器通信并让它知道客户端的用户正在输入。

现在我正在使用 Python 的输入命令来获取用户的聊天条目。是否可以使用 Python 做我想做的事情?如果没有,您能否推荐一种我可以用来实现相同目标的替代方式或语言?

我希望很清楚我在这里要完成的工作,并提前感谢您。

4

1 回答 1

0

您可以一次读取一个字符,使hasSomethingEntered在第一个字符后为真,在行尾为假。不幸的是,这取决于平台。

视窗:

import msvcrt
one_character= msvcrt.getch()

Unix:

import sys, tty
tty.setraw(sys.stdin.fileno())
one_character= sys.stdin.read(1)

在后一种情况下,您很可能希望sys.stdin使用

import sys, termios
previous_mode= termios.tcgetattr( sys.stdin.fileno() )

import sys, termios
termios.tcsetattr(sys.stdin.fileno(),termios.TCSADRAIN, previous_mode )

, 分别。

于 2013-07-30T22:17:33.183 回答