This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/DK-TM4C129X:获取 IP 地址、网关和掩码

Guru**** 2482225 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/727863/rtos-dk-tm4c129x-obtaining-ip-address-gateway-and-mask

器件型号:DK-TM4C129X

工具/软件:TI-RTOS

您好!

我想获取并显示 IP 地址、网关和掩码。 我看到过使用下面挂钩函数的过帐

void ti_ndk_config_Global_NetworkIPAddr (IPN ipaddr、 uint IfIdx、 uint fAdd)。

我实施了它、它会被调用、但我会继续获取编译

标识符"IPN"未定义。 "uint"也是如此。 我跟踪了此标识符的位置、并将其转至位于 ti\ndk\inc 目录下的 usertype.h。 我已将此目录添加到我的 include 文件中。  

至于标头声明、我只是复制了 tcpecho 中的那些声明

#include                        //mand强制-对于 BIOS 类型、必须首先包含
#include                //mandedis-如果您调用诸如 BIOS_start()之类的 API
#include                //needed 用于任何 Log_info()调用
#include
#include
#include                 静态定义的对象/句柄的//头文件
#include
#include
/* NDK BSD 支持*/
#include
/*示例/板头文件*/
#include "Board.h"
我缺少什么吗? 这将在我使其工作后解决 IP 问题。 但是、如何获取掩码和网关?
谢谢
AJ  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只是一个修正。 我实现了我自己的挂钩函数、我在配置文件 net_ip_add_hook 中声明了该函数、并在上面提到的参数上传递了该函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我想添加一些内容... 我想即时更改 IP 地址并显示 IP、掩码和网关。

    我遵循了此帖子中的代码

    e2e.ti.com/.../447450

    我遇到编译错误。

    例如,CI_IPNet 标识符未定义。 我不知道应该包含什么".h"文件。 我知道我已正确设置了包含路径。

    谢谢
    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、AJ、

    请尝试使用此 include

    #include 

    这个位于 tcpEchoHooks.c 中 我希望这足以解决您在运行该代码时遇到的问题。 如果不是、请告诉我出现了哪些错误。 对于获取 IP 地址、子网掩码和网关、下面是一篇文章、其中包含您的确切问题: 在启用 DHCP 的情况下获取 IP、子网掩码、网关 IP 和 DNS IP

    其中的答案描述了网关的 DHCP 和非 DHCP 情况。

    最棒的

    -布兰登

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Brandon、

    感谢您的回复。 我添加了 netmain、但仍然遇到错误。 我查看了 API 手册、并在下面看到了该手册。 事实证明,在同一个文件中添加 sys/socket.h 和 netmain.h 会导致问题。 我必须将我的所有 BSD 代码放在一个单独的文件中。 它现在可以工作了。 我现在看一下网关和掩码。 我将关闭此主题并打开一个新主题、以防我无法理解您在上面发布的链接。


    3.3.1.1关于 BSD 兼容性需要记住的事项
    在将 BSD 套接字代码集成到 NDK 应用时、请记住以下问题。
    include 语句:大多数 BSD 套接字应用程序应具有以下 include 语句:
    #include
    文件分离:一般而言、BSD 应用程序应在单独的 C 中包含 BSD 样式的套接字代码
    文件。 也就是说、BSD 套接字代码不应与 NDK 代码混合、例如 NDK 套接字代码或
    标准(非 BSD) NDK API。 必须执行此操作以避免类型和函数名称冲突
    标准 NDK 接头和 BSD 层接头之间的差异。
    包含 BSD 样式代码的文件可以包含 ti/NDK/inc/bsd 目录树中的头文件(对于
    示例、sys/socket.h)、并且不需要包含 ti/ndk/inc 中找到的任何 NDK 头文件及其
    不是 BSD 子目录的子目录。
    遵循的一个好规则是将 BSD 套接字代码组织成一个单独的文件、该文件仅包含 BSD 样式
    头文件以及 SYS/BIOS 和 XDC 头文件。 特定于 NDK 的代码
    功能-例如 NDK 网络打开或关闭挂钩、IPv6系统初始化和取消初始化
    调用-应转至包含标准(非 BSD) NDK 头文件的单独文件或文件、这些头文件位于中
    TI/NDK/INC.