c - 如何编写一个简单的基于文本的协议(protocol),最好是用 C

标签 c algorithm security protocols

我想编写一个通过标准 TCP/IP 与应用程序服务器通信的客户端程序。客户端可以与应用程序服务器对话,并通过简单地以特定的基于文本的协议(protocol)对话来进行身份验证。流量将被加密,但不会有用户名/密码。如果另一个应用程序尝试与应用程序服务器通信,并且应用程序未使用正确的基于文本的协议(protocol),则应用程序服务器将默默地丢弃数据包。

等待建议。

最佳答案

您可以使用 TLV 的简化版本(标记长度值)。

基本思想是定义一组消息类型,这些消息类型由固定大小的代码(T 代表 Tag)表示。根据消息的类型,它的内容(V 代表值)可以非常好,因此您可以在内容之前指定它的长度(L 代表长度)。 Length字段也有固定大小

假设您有一条消息用于将用户数据发送到服务器。您可以定义如下消息:

0x01 0x0018 0x11 0x0003 tom 0x12 0x000F tom@hotmail.com

Tag: 0x10 User data. Length: 0x0018 Value: sub tags

    Tag 0x11: user name Length: 0x0003 Value = tom
    Tag 0x12: email. Length: 0x000F. Value = tom@hotmail.com

已编辑:

我差点忘了:圣诞快乐 :)

关于c - 如何编写一个简单的基于文本的协议(protocol),最好是用 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959448/

相关文章:

c - Debian wheezy 中的 gcc 4.7.2 并不总是正确对齐堆栈指针。这是一个错误吗?

algorithm - 判断一条线是否与球体相交

algorithm - 查找网格上的点和行之间的最短路径

c++ - 处理条件语句

apache-flex - 在 ActionScript 3 中加密/解密图像

c - 静态内联、外部内联和普通内联函数有什么区别?

c - dladdr 不返回函数名

c - 比使用 System() 调用更简单的方式?

security - 如何在 CSV 文件上安全地使用 fopen?

windows - 创建一个防弹工作进程(在 windows 上)