为了练习和乐趣,我正在开发一个连接到在线服务的小型Python聊天客户端。聊天允许其他用户查看主要用户何时键入。我希望其他用户看到该程序的用户何时正在输入要发送给他们的内容。
>>>Stranger: Hello, user.
>>>Hello, how are y...
这可能会将变量 hasSomethingEntered 设置为True,因为正在键入某些内容而
>>>Stranger: Hello, user.
>>>
会将变量 hasSomethingEntered 设置为False,因为用户尚未在输入框中输入任何内容。然后将此变量传递到一个单独的线程中,该线程与服务器通信并让它知道客户端的用户正在键入。
现在我正在使用Python的输入命令来获取用户的聊天条目。是否有可能使用Python做我想做的事情?如果没有,你能推荐一种我可以用来实现同一目标的替代方式或语言吗?
我希望很清楚我在这里要完成的事情,并提前感谢你。
答案 0 :(得分:0)
您可以一次阅读一个字符,在第一个字符后使 hasSomethingEntered 为true,在一行结束后为false。不幸的是,这与平台有关。
视窗:
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 )
,分别。