工具/软件:TI-RTOS
我正在使用网络开发套件。 我需要从客户端接收数据。 是否存在使用诸如 NDK_CONNECT()、NDK_recv()等 API 来接收数据的任何序列。 我需要在 tcpHandler.c 中编辑哪些内容才能从客户端接收数据。
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.
工具/软件:TI-RTOS
我正在使用网络开发套件。 我需要从客户端接收数据。 是否存在使用诸如 NDK_CONNECT()、NDK_recv()等 API 来接收数据的任何序列。 我需要在 tcpHandler.c 中编辑哪些内容才能从客户端接收数据。
您好 Todd、
我也可以使用 BSD 套接字。 我能够从客户端获取数据、但我不知道如何读取该数据。 参考 NDK 手册、我 找到了一个 API
int ndk_recv (socket s、void *pbuf、int size、int flags);
我不知道在代码中将此 API 包含在何处以读取数据。 我是否需要创建一个单独的任务(我指的是一个单独的函数)来读取数据???? 还是 在 代码的 tcpWorker 部分中包含 NDK_recv() API?
您好、Naveen、
您是否能够运行 tcpEcho 示例?
[引用 USER="Naveen Kumar29"]是否有使用诸如 NDK_CONNECT ()、NDK_recv ()等 API 来接收数据的任何序列[/引用]
是的、根据您的代码是客户端还是服务器、有一个特定的顺序来调用套接字 API。
服务器通常会调用 bind ()、listen ()和 accept (),以等待连接,然后才能发送()和 recv ()数据。
客户端将调用 connect()连接到服务器,然后才能发送()和 recv()数据。
我通过 Google 搜索找到的下图可能会对您有所帮助。 请注意,您可以用图中的 API 名称替换它们的 NDK 等效名称(例如,图中的"connect()"等效于"NDK_connect()"等等)。
[引用 user="Naveen Kumar29"]我需要在 tcpHandler.c 中编辑哪些内容才能从客户端接收数据。
TCP 回显示例是 TCP 服务器。 它有一个用作客户端的配套应用程序、可从 PC 运行(有关指导、请参阅 tcpEcho 示例中的自述文件)。
如果您按照 tcpEcho 示例的代码执行操作、首先从 tcpHandler 任务开始、然后再按照 tcpWorker 任务开始、则应查看其套接字 API 调用如何映射到上图的服务器部分。
[引用用户="Naveen Kumar29">我可以从客户那里获取数据,但我不知道如何读取这些数据。 参考 NDK 手册、我 找到了一个 API
|
1
|
intNDK_recv(SOCKET s, void*pbuf, intsize, intflags); |
[/报价]
是的、NDK_recv()函数用于从套接字接收(读取)数据。 您必须为该 API 提供一个缓冲区来复制被读取的数据(这是 API 的 pbuf 参数)。
一旦 NDK_recv()函数返回(成功),您应该能够访问在 pbuf 缓冲区内读取的数据。
[引用用户="Naveen Kumar29"]
我不知道在代码中将此 API 包含在何处以读取数据。 我是否需要创建一个单独的任务(我指的是一个单独的函数)来读取数据???? 还是 在 代码的 tcpWorker 部分中包含 NDK_recv() API?
[/报价]
在 tcpEcho 示例中,可在 tcpWorker 任务函数中找到 recv()调用。
如果您想大致确定调用 recv()的位置/时间,则上图应该可以帮助您解决这一问题。
Steve