下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

FreeRTOS_closesocket()

[FreeRTOS-Plus-TCP API 引用]

FreeRTOS_sockets.h
BaseType_t FreeRTOS_closesocket( Socket_t xSocket );
		

关闭套接字。

该函数被命名为 FreeRTOS_closesocket(),而非单纯地命名为 FreeRTOS_close(),以避免与 FreeRTOS-Plus-IO 中的函数发生命名空间冲突。

套接字应在停用前被妥善关闭, 且不可 在关闭后使用。

参数:

xSocket   正在停用的套接字句柄。 套接字 必须已创建(请参阅 FreeRTOS_socket()), 且不可在关闭后使用。

返回:

始终返回 0。

虽然 FreeRTOS-Plus-TCP [当前]并未以有意义的方式 使用返回值,但返回值包含在函数原型中,以确保与 预期的标准伯克利套接字 API 保持一致并与 FreeRTOS-Plus-TCP 的未来版本兼容。

用法示例:


/* FreeRTOS-Plus-TCP sockets include. */
#include "FreeRTOS_sockets.h"

void aFunction( void )
{
Socket_t xSocket;

/* Create a socket. */
xSocket = FreeRTOS_socket( FREERTOS_AF_INET4, FREERTOS_SOCK_STREAM, FREERTOS_IPPROTO_TCP );
/* FREERTOS_AF_INET6 can be used for IPv6 TCP socket */

if( xSocket != FREERTOS_INVALID_SOCKET )
{
/*
* The socket can now be used...
*/


/* . . . */

/* Initialise a shutdown before closing the socket. */
FreeRTOS_shutdown( xSocket );

/* Wait for the socket to disconnect gracefully (indicated by FreeRTOS_recv()
returning a FREERTOS_EINVAL error) before closing the socket. */

while( FreeRTOS_recv( xSocket, pcBufferToTransmit, xTotalLengthToSend, 0 ) >= 0 )
{
/* Wait for shutdown to complete. If a receive block time is used then
this delay will not be necessary as FreeRTOS_recv() will place the RTOS task
into the Blocked state anyway. */

vTaskDelay( pdTICKS_TO_MS( 250 ) );

/* Note - real applications should implement a timeout here, not just
loop forever. */

}

/* Close the socket again. */
FreeRTOS_closesocket( xSocket );
}
}


Example use of the FreeRTOS_closesocket() API function
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.