网络通信,需要GPRS网络已经能正常使用的前提下使用
例程:demo/socket
TCP、UDP选择
typedef enum{
TCP = 0,
UDP =1
}TCP_UDP_t;
错误信息
typedef enum{
/** No error, everything OK. */
API_SOCKET_ERROR_NONE = 0,
/** Out of memory error. */
API_SOCKET_ERROR_MEM = -1,
/** Buffer error. */
API_SOCKET_ERROR_BUF = -2,
/** Timeout. */
API_SOCKET_ERROR_TIMEOUT = -3,
/** Routing problem. */
API_SOCKET_ERROR_RTE = -4,
/** Operation in progress */
API_SOCKET_ERROR_INPROGRESS = -5,
/** Illegal value. */
API_SOCKET_ERROR_VAL = -6,
/** Operation would block. */
API_SOCKET_ERROR_WOULDBLOCK = -7,
/** Address in use. */
API_SOCKET_ERROR_USE = -8,
/** Already connecting. */
API_SOCKET_ERROR_ALREADY = -9,
/** Conn already established.*/
API_SOCKET_ERROR_ISCONN = -10,
/** Not connected. */
API_SOCKET_ERROR_CONN = -11,
/** Low-level netif error */
API_SOCKET_ERROR_IF = -12,
/** Connection aborted. */
API_SOCKET_ERROR_ABRT = -13,
/** Connection reset. */
API_SOCKET_ERROR_RST = -14,
/** Connection closed. */
API_SOCKET_ERROR_CLSD = -15,
/** Illegal argument. */
API_SOCKET_ERROR_ARG = -16
}API_Socket_Error_t;
int Socket_TcpipConnect(TCP_UDP_t tcpOrUdp, const char* ip,uint16_t port);
连接服务器
- tcpOrUdp:选择TCP协议还是UDP
- ip:要连接的ip地址
- port:要连接的服务器端口
- 若成功,返回文件描述符fd,若失败,返回错误信息
API_Socket_Error_t
int Socket_TcpipWrite(int socketFd, uint8_t* data, uint16_t length);
向服务器发送数据
- socketFd:建立的socket连接文件描述符,
Socket_TcpipConnect
成功后的返回值 - data:需要发送的数据
- length:需要发送的数据的长度
- 成功发送的数据长度或者错误代码
int Socket_TcpipRead( int socketFd, uint8_t* data, uint16_t length);
连接建立后,收到来自服务器的信息会产生事件,在事件触发后调用read函数即可读取数据
- socketFd:建立的socket连接文件描述符,
Socket_TcpipConnect
成功后的返回值 - data:接收到的数据存放的位置
- length:需要发送的数据的长度
- 读取到的数据的长度或者错误代码
bool Socket_TcpipClose(int socketFd);
关闭socket连接
- socketFd:建立的socket连接文件描述符,
Socket_TcpipConnect
成功后的返回值
- 是否成功关闭socket连接