telnet的回显问题。

what_1010 2010-05-18 01:59:34
2个线程,读线程和写线程,写线程负责将键盘输入发送到服务器端,读线程负责回显

================================
写线程
tcsetattr(不回显)
getchar
tcsetattr(回显)
send(发送到服务器)


================================
读线程

循环
recv(取得服务器的回显文字)
显示

--------------------------------
现在操作有一个问题,当进入getchar等待键盘输入时,因为设置为不回显,所以服务器接受的文字页不显示了。怎么协调写和读?
...全文
204 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
supjia 2010-05-20
  • 打赏
  • 举报
回复
如果你紧紧是为了在服务器端也能看到输入的数据的话,可以加上printf()函数,把你输入的字符打印到当前标准输出,后面在用fflush(NULL);刷新下。程序如下:
写线程
tcsetattr(不回显)
getchar
printf()
fflush(NULL)
tcsetattr(回显)
send(发送到服务器)
what_1011 2010-05-19
  • 打赏
  • 举报
回复
看来是没答案了。。。
what_1010 2010-05-18
  • 打赏
  • 举报
回复
getchar??设置为非阻塞??
yanjinbin0 2010-05-18
  • 打赏
  • 举报
回复
输入数据设置为非阻塞的方式,接收数据放入一个缓冲区,当输入数据函数等待超时后就判断接收缓冲是否有数据,如有则显示,没有则等待用户输入.这样就可以了。
what_1010 2010-05-18
  • 打赏
  • 举报
回复
没有办法么?

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧