<%s>/r/n", nRcvBytes, (const char *)l_ubaUdpBuf);else{//* 小于0则意味着recv()函数报错if(nRcvBytes < 0){printf("recv failed, %s\r\n", onps_get_last_error(hSocket, NULL));//* 关闭socket释放占用的协议栈资源close(hSocket);break;}}}//* 关闭socket,断开当前tcp连接,释放占用的协议栈资源close(hSocket);return 0;}【3 onps栈使用说明——tcp、udp通讯测试】udp通讯编程依然遵循了传统习惯 , 主要编程步骤还是那些:
- 调用socket函数,申请一个SOCK_DGRAM(udp)类型的socket;
- 如果想建立服务器,调用bind()函数;想与单个目标地址通讯 , 调用connect()函数;与任意目标地址通讯则什么都不用做;
- 调用send()或sendto()函数发送udp报文;
- 调用recv()或recvfrom()函数接收udp报文;
- close()函数关闭socket释放当前占用的协议栈资源;
推荐阅读
- 2 onps栈使用说明——ping、域名解析等网络工具测试
- Go实现栈与队列基本操作
- 定位java程序中占用cpu最高的线程堆栈信息
- 1 onps栈使用说明——API接口手册
- 索尼wf1000xm4怎么连接_索尼wf1000xm4使用说明
- 3 onps栈移植说明——添加网卡
- 2 onps栈移植说明——编译器及os适配层移植
- 1 onps栈移植说明——onps栈的配置及裁剪
- 开源网络协议栈onps诞生记
- <一>从指令角度了解函数堆栈调用过程