我是 TCP/IP 协议的新手,想用 C++ 创建一个聊天服务器。
现在,我决定以一个字符开始我的所有传输,以告知接下来会发生什么(登录请求、要发布的消息、客户的用户名……)。
因此,我使用 0x01、0x02、... 等值来表示与登录、信息请求等相关的内容,而 0x10 则用于消息。
绝望地,当我尝试用我创建的另一个程序连接到我的服务器时,我从服务器收到一个传输,它以 0x01 开头(所以一切都还可以),但是当我回复以 0x03 开头的东西时,服务器只有当我杀死客户时收到它...
我认为是 select 函数并没有说有什么要读的。
这正常吗?
如果是,我应该用可打印且没有特殊含义的值替换这些值吗?