ZHCU938C May 2018 – January 2021 CC3100 , CC3100MOD , CC3200 , CC3200MOD
套接字的服务器端与客户端相同。
SockID = sl_Socket(SL_AF_INET,SL_SOCK_DGRAM, 0);
与 TCP 类似,将套接字绑定到本地地址。UDP 无连接,因此不需要侦听。
#define PORT_NUM 5001
SlSockAddrIn_t LocalAddr;
AddrSize = sizeof(SlSockAddrIn_t);
TestBufLen = BUF_SIZE;
LocalAddr.sin_family = SL_AF_INET;
LocalAddr.sin_port = sl_Htons((UINT16) PORT_NUM);
LocalAddr.sin_addr.s_addr = 0;
Status = sl_Bind(SockID, (SlSockAddr_t *) &LocalAddr, AddrSize);
套接字现在尝试接收有关套接字的信息。如果用户未将套接字选项指定为非阻塞,则会阻止该命令,直至接收到 BUF_SIZE 大小的数据量。第五个参数指定了发送数据的源地址。
#define BUF_SIZE 1400
SlSockAddrIn_t Addr;
char RecvBuf[BUF_SIZE];
Status = sl_RecvFrom(SockID, RecvBuf, BUF_SIZE, 0, (SlSockAddr_t *) &Addr, (SlSocklen_t*) &AddrSize );
通信完成后关闭套接字。
sl_Close(SockID);