1、概述
操作系统在API层为我们提供了进行网络通讯的库(一组socket函数库),但使用起来未免复杂,而且极易出错,虽然这些socket库最初起源于 BSD系统,各个操作系统厂商都提供了自身平台的接口实现,但这些接口在不同OS上又略有差别,所以当你想写一个跨平台的网络通信程序时,工作量还是有的,并且如不知晓各个平台下的差异也极易出错。
本节向你介绍了怎样使用ACL库中的数据流(ACL_VSTREAM)来快速搭建你的网络通信程序;另外,ACL_VSTREAM 不仅是跨平台的,而且既可用于网络通信流,又可用于文件流,本节仅介绍网络流的例子。
2、网络通信函数接口说明
2.1)服务端接口
C代码
/**
* 监听某个地址(对于UNIX,还可以监听域套接字)
* @param addr {const char*} 监听地址
* 如:127.0.0.1:80, 或域套接字, 如:/tmp/test.sock
* @param qlen {int} 监听队列的长度
* @return {ACL_VSTREAM*} 监听流指针
*/
ACL_API ACL_VSTREAM *acl_vstream_listen(const char *addr, int qlen);
/**
* 从监听流中接收一个客户端连接流
* @param listen_stream {ACL_VSTREAM*} 监听流
* @param ipbuf {char*} 如果不为空则用来存储客户端的IP地址
* @param bsize {int} 如果 ipbuf 不为空,则表示 ipbuf 的空间大小
* @return {ACL_VSTREAM*} 如果不为空则表示新接收的客户端流
*/
ACL_API ACL_VSTREAM *acl_vstream_accept(ACL_VSTREAM *listen_stream,
char *ipbuf, int bsize);
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!