RTX64 设计目标之一,是在 RT-TCP/IP 栈和 Winsock API(用于为 Microsoft Windows 开发 TCP/IP 应用程序的 API)之间尽可能的做到代码级兼容。RT-TCP/IP 栈基于 Treck Inc. Treck TCP/IP 版本 6.0.1.34 版本。
Winsock API 分为 2 个主要 API:BSD 和 Winsock 扩展。BSD 组是 Microsoft 版本的伯克利标准 API。Winsock 扩展是 Microsoft 开发的附加 API,用于进一步增强协议栈的功能,特别是在网络事件的异步通知领域。Winsock 扩展提供的增强功能不保证确定性。建议使用 BSD API 而不是 Winsock 扩展来开发应用程序。Winsock 扩展很容易通过其 WSA 前缀来识别。
RTX64 SDK 参考手册中包含 RT-TCP/IP 栈支持的 Winsock 函数列表。RTX64 SDK 参考手册的 Winsock 兼容性问题部分列出了不支持的 Winsock 选项。
注意:Winsock 兼容性问题列表仅涵盖最常用的 API。如有疑问,请参阅帮助系统中的各个 API 描述,以获取有关任何给定 API 支持/不支持的内容的详细信息。
注意:在任何实时应用程序中,初始化和清理过程都是必要的,但被认为是不确定的,因此永远不应该放入关键的实时循环内。对于 WSAStartup 和 WSACleanup 也是如此,它们是不确定的,但必须正确的初始化和清理。
内格尔(Nagle)算法
Nagle 算法 (IETF RFC 896) 在 RT-TCP/IP 中用来自动连接大量小缓冲区消息;此过程(称为 nagling)通过减少必须发送的数据包数量(在标准 TCP/IP 配置中启用)来提高网络应用程序的效率。RT-TCP/IP 允许启用或禁用 Nagle 算法。使用 setsockopt 函数,将 TCP_NODELAY 设置为 TRUE(禁用)或 FALSE(启用)。启用/禁用 Nagle 算法的示例作为新的命令行参数包含在客户端和服务器源代码中(n=0 表示启用,n=1 表示禁用)。