我正在尝试使用C++和QT作为GUI实现Telnet客户端。但我不知道如何处理telnet的协商过程。每个telnet命令都以IAC开头,例如:
IAC WILL SUPPRESS_GO_AHEAD
以下是我的协商过程:
- 在接收缓冲区中搜索IAC字符
- 根据命令和选项,响应请求
我的问题描述如下:
- 似乎telnet服务器在发送协商命令后不会等待客户端响应。例如(发送两个或多个命令而不等待客户端响应)
IAC WILL SUPPRESS_GO_AHEAD
IAC WILL ECHO
我应该如何处理这种情况?处理两个请求还是只处理最后一个请求?
- 如果我不响应请求,选项值会是什么?它们会被设置为默认值吗?
- 为什么IAC字符(255)不被视为数据而是命令?