gpt4 book ai didi

c - 在简单的客户端/服务器聊天程序中显示文本的困难(显示当前输入)-C

转载 作者:行者123 更新时间:2023-12-01 12:00:38 25 4
gpt4 key购买 nike

我正在为我的网络类(class)编写一个聊天程序,并且我已经完美地完成了所有网络设置。

我的问题是,如果一个客户当前正在写一条消息,而他从另一个客户那里收到一条消息,那么他当前的输入会与收到的消息一起显示。

例如,如果客户正在写一条消息“嗨,你好吗?”并收到一条消息“祝你有个美好的一天!”在写消息的过程中,消息显示为:

Hi there hoGood day to you!

->w are you?

其中 -> 是用户输入消息的区域。我想要发生的是只显示收到的消息并让区域 -> 保留收到消息之前写入的所有先前文本。

请注意,当客户收到消息时,他输入的内容实际上仍然“存在”。如果他完成了他的消息,他的完整消息将被发送。

另请注意,我的客户端使用 pthreads。一个线程从服务器读取消息并将它们显示到用户屏幕,一个线程从标准输入读取消息并将消息发送到服务器。我确实相信我的问题出现了,因为我正在使用 pthreads 并且线程共享相同的 stdin、stdout、stderr。也许这是一种误解和错误?

我希望我已经清楚我的问题。如果没有,对不起。请让我知道我能为您澄清什么。

我开始做一些研究并找到了这些链接:

我正在考虑尝试上行并四处移动光标等等,但不知道这是否是最有效的方法。首先,因为我不知道如何捕获终端中等待“输入”/发送到标准输入的信息。也许我只是还没有找到如何做到这一点。

另外我想知道是否有一种方法可以工作/操作文件描述符来解决这个问题?也许那甚至都无法解决问题?

感谢您的阅读和您的宝贵时间。感谢您的帮助。

最佳答案

使用类似 curses 的库管理文本“窗口”比尝试手动操作屏幕更容易。

关于c - 在简单的客户端/服务器聊天程序中显示文本的困难(显示当前输入)-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2097369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com