这是一个颇为曲折的问题,为此,我很抱歉。 我写了一个Linux下C插座应用,一个简单的聊天服务器的基本框架。 服务器在我的笔记本电脑上运行。 客户端是远程登录的那一刻,直到我写一个指定的客户端应用程序(那将是更安全,希望)。 有来自客户端,我知道发送通用网络数据更好的应用程序,但我有兴趣, 为什么一定的事情发生了一个Telnet客户端而不是另一个上。
第一个Telnet客户端测试在另一台Linux笔记本电脑。 它按预期工作。 接下来,然而,是一个叫BBSSH黑莓应用程序,允许Telnet和SSH连接。 我通过远程登录的选项去了,它也能工作。 除此之外,它不完全是。
服务器代码执行通常的read
呼叫检索数据的一个块,这被视为字符串,即一个消息。 前者客户端读取,直到我按下回车键,然后将其发送的字符为一个字符串。 在BB的应用程序,但是,发送仿佛我已经按他们每个人进入后,我没有每一个字符。 显然,这是值得做缓冲,什么某些客户端类作为用户输入一个EOL等我只是不能找出它。
为了说明这一点,这里是服务器输出它从客户端接收的讯息。
首先,从Linux客户端的消息:
client name: this is a test
现在,BBSSH:
client name: t
client name: h
client name: i
client name: s
client name:
client name: i
client name: s
client name:
client name: a
client name:
client name: t
client name: e
client name: s
client name: t
任何帮助吗?