此为API文档的一些常见问题和解释
1.问:注释和函数不对应
答:我们的注释在某些扩展函数EX中,会忽略掉第一个句柄参数,所以部分注释要从函数的第二个参数开始读
注释不一定会全部正确,一切以代码为准.
2.问:所有功能都进行了分类整理嘛
答:不是所有功能都是单独的分类,比如线程就不是(因为功能区分很小),他有几种线程池,各类线程池是不能通用的
3.问:请求的IP版本参数是INT类型,不知道怎么传参
答:IP版本类型我们采用系统默认的值,比如IPV4是AF_INET,IPV6是AF_INET6
4.问:文档里面的例子是最新的吗?
答:不一定.代码示例应该按照版本库中的示例为标准
5.问:句柄返回有时候是XNETHANDLE,有时候是XHANDLE,他们有什么区别?
答:XHANDLE一般有内部线程,而且是线程安全,为了防止内部线程锁冲突,我们通过单独申请内存XHANDLE来处理相关代码逻辑
XNETHANDLE属于线程安全,XHANDLE不属于线程安全.
6.问:目前的字符编码集是什么
答:都是UTF8的字符集,WINDOWS是使用的UTF8代码格式ANSI的字符集
7.问:什么是三级指针什么是二级指针数据类型
答:无论是三级指针还是二级指针,他们都是系统内部申请内存保存数据所处理的一种方法,使用了这种方式的函数参数,如果没有特别说明,都需要用户自己主动的调用内存释放
XPPMEM:二级指针,使用BaseLib_OperatorMemory_FreeCStyle释放内存.
XPPPMEM:三级指针,使用BaseLib_OperatorMemory_Free释放内存
8.问:在一些注释不明确的地方怎么确定函数调用顺序
答:一般情况下,函数调用顺序是从上到下的.比如,在使用ssl安全套接字客户端的时候,我们的调用顺序如下所示,我们可以看到有两个函数是可选的,config是必须在初始化后调用,getkey同理
一般情况下,设置函数大部分可能会有一个固定的调用顺序,之后之前不能调用,然而获取函数大部分情况下没有这个要求
XClient_OPenSsl_InitEx 必选的函数初始化.
XClient_OPenSsl_ConfigEx 函数可选配置算法加密库
XClient_OPenSsl_ConnectEx 必须得函数链接到服务器
XClient_OPenSsl_GetKeyEx 可选的函数获取服务器的密钥
发送或者接受数据函数
XClient_OPenSsl_CloseEx 必须得关闭函数
9.问:为什么只有TCPXCore的高性能客户端函数库,没有UDP高性能的客户端函数
答:无论TCP还是UDP的XCore,内部都是使用IOCP,EPOLL,KEVENT实现,UDP的XCore可以直接使用XEngine_Core模块下的UDPXCore服务端函数实现客户端的功能.