mudclient / go-mud

Go 语言写的,支持 UTF-8 的中文 MUD 客户端
GNU General Public License v3.0
35 stars 11 forks source link

半行的内容看不到,比如登录时的用户名密码输入提示,只能摸黑输入 #1

Closed dzpao closed 5 years ago

dzpao commented 5 years ago

这个 BUG 的原因是,目前在接收 MUD 数据处理时,只是简单的按照换行符拆分了数据包,因此不完整的行将留在缓冲区没有读出来。但如果贸然地将不完整地行独取出来也有问题,因为在网络延迟情况较大的情况下,可能会导致独取到半个汉字,进而导致乱码。

另外,目前 IAC(#3) 也没有处理,因此综上所述,应当是对不完整的行、不完整的字符,以及 IAC 做一个统一的处理。确保每个完整的字符都可以及时显示出来,这样就不会有标题中所说的问题了。

另外,这个现象除了在登录时出现之外,也会导致命令提示符 > 不能及时显示出来,进而导致各种带表格的命令(如 skills hp 等)的输出结果第一行错位。除此之外并不影响游戏过程的正常进行。