C++POCO库中文编程Word文档格式.docx
- 文档编号:8485476
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:11
- 大小:18.57KB
C++POCO库中文编程Word文档格式.docx
《C++POCO库中文编程Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++POCO库中文编程Word文档格式.docx(11页珍藏版)》请在冰点文库上搜索。
Units:
Constants
Internal
Values
XML
Zip
C++POCO库中文编程参阅攻略
(2)根本数据类型(Poco/Types.h)
根本类型在Poco/Types.h头文件中。
以下以GNUC/C++和CLang为例。
不过要着重的是,POCO有极好的跨渠道性,你能想到的渠道,简直都能够运转POCO。
1有符号整型
typedefsignedcharInt8;
typedefsignedshortInt16;
typedefsignedintInt32;
2无符号整型
typedefunsignedcharUInt8;
typedefunsignedshortUInt16;
typedefunsignedintUInt32;
3PointerorHandler
typedefsignedlongIntPtr;
typedefunsignedlongUIntPtr;
464位整型
思考了32位机和64位机的状况
#ifdefined(__LP64__)
#definePOCO_PTR_IS_64_BIT1
#definePOCO_LONG_IS_64_BIT1
typedefsignedlongInt64;
typedefunsignedlongUInt64;
#else
typedefsignedlonglongInt64;
typedefunsignedlonglongUInt64;
#endif
#definePOCO_HAVE_INT641
C++POCO库中文编程参阅攻略(3)Poco:
Net:
Socket
1SelectMode
enumSelectMode
///Themodeargumenttopoll()andselect().
{
SELECT_READ=1,
SELECT_WRITE=2,
SELECT_ERROR=4
};
2SocketList
typedefstd:
vectorSocketList;
3布局函数
未初始化的socket:
Socket();
复制布局函数
Socket(constSocket&
socket);
4重载运算符
赋值运算符:
Socket&
operator=(constSocket&
对比运算符:
booloperator==
(constSocket&
socket)const;
booloperator!
=(constSocket&
booloperator<
(constSocket&
booloperator>
5常用socket操作
回来该socket的可读数据的字节数,该操作不导致socket堵塞:
intavailable()const;
封闭socket:
voidclose();
poll:
boolpoll(const
Timespan&
timeout,intmode)const;
///Determinesthestatusofthesocket,usinga
///calltoselect().
///
///Themodeargumentisconstructedbycombiningthevalues
///oftheSelectModeenumeration.
///Returnstrueifthenextoperationcorrespondingto
///modewillnotblock,falseotherwise.
SocketImpl*impl()const;
///ReturnstheSocketImplforthissocket.查看这个socket的衔接是不是是安全的(运用SSL或TLS):
boolsecure()const;
6缓冲区
发送数据的缓冲区:
voidsetSendBufferSize(intsize);
intgetSendBufferSize()const;
接收数据的缓冲区:
voidsetReceiveBufferSize(intsize);
intgetReceiveBufferSize()const;
7超不时刻
发送数据的超不时间:
voidsetSendTimeout(constPoco:
timeout);
TimespangetSendTimeout()const;
接纳数据的超不时刻:
voidsetReceiveTimeout(constPoco:
TimespangetReceiveTimeout()const;
8其他接口
voidsetOption(intlevel,intoption,intvalue);
voidsetOption(intlevel,intoption,unsignedvalue);
voidsetOption(intlevel,intoption,unsignedcharvalue);
voidsetOption(intlevel,intoption,constPoco:
value);
voidsetOption(intlevel,intoption,constIPAddress&
value);
voidgetOption(intlevel,intoption,int&
value)const;
voidgetOption(intlevel,intoption,unsigned&
voidgetOption(intlevel,intoption,unsignedchar&
voidgetOption(intlevel,intoption,Poco:
value)
const;
voidgetOption(intlevel,intoption,IPAddress&
voidsetLinger(boolon,intseconds);
voidgetLinger(bool&
on,int&
seconds)const;
voidsetNoDelay(boolflag);
boolgetNoDelay()const;
voidsetKeepAlive(boolflag);
boolgetKeepAlive()const;
voidsetReuseAddress(boolflag);
boolgetReuseAddress()const;
voidsetReusePort(boolflag);
boolgetReusePort()const;
voidsetOOBInline(boolflag);
boolgetOOBInline()const;
voidsetBlocking(boolflag);
boolgetBlocking()const;
获取socket的IP和端口:
SocketAddressaddress()const;
获取peersocket的IP地址和端口:
SocketAddresspeerAddress()const;
9静态函数
select:
staticintselect(SocketList&
readList,
SocketList&
writeList,
exceptList,
constPoco:
///Determinesthestatusofoneormoresockets,
///usingacalltoselect().
///ReadListcontainsthelistofsocketswhichshouldbe
///checkedforreadability.
///WriteListcontainsthelistofsocketswhichshouldbe
///checkedforwriteability.
///ExceptListcontainsalistofsocketswhichshouldbe
///checkedforapendingerror.
///Returnsthenumberofsocketsready.
///Afterreturn,
///*readListcontainsthosesocketsreadyforreading,
///*writeListcontainsthosesocketsreadyforwriting,
///*exceptListcontainsthosesocketswithapendingerror.
///IfthetotalnumberofsocketspassedinreadList,writeList
and
///exceptListiszero,select()willreturnimmediatelyandthe
///returnvaluewillbe0.
///Ifoneofthesocketspassedtoselect()isclosedwhile
///select()runs,selectwillreturnimmediately.However,
///theclosedsocketwillnotbeincludedinanylist.
///Inthiscase,thereturnvaluemaybegreaterthanthesum
///ofallsocketsinalllist.查看是不是撑持IPv4或IPv6:
staticboolsupportsIPv4();
staticboolsupportsIPv6();
C++POCO库中文编程参阅攻略(4)Poco:
IPAddress
1Poco:
地址最大长度,IPv4是in_addr的长度,IPv6是in6_addr的长度
enum
MAX_ADDRESS_LENGTH=
#ifdefined(POCO_HAVE_IPv6)
sizeof(structin6_addr)
#else
sizeof(structin_addr)
///Maximumlengthinbytesofasocketaddress.
1.1IPv4orIPv6?
POCO用一个枚举类来表明:
enumFamily
///PossibleaddressfamiliesforIPaddresses.
IPv4,
IPv6
1.2布局函数
回来一个全0的IP地址:
IPAddress();
复制布局函数:
IPAddress(constIPAddress&
addr);
依据IP类型(IPv4或IPv6)创立一个全0的IP地址:
explicitIPAddress(Familyfamily);
用字符串类型的IPv4地址或IPv6地址来创立一个IP地址,其间IPv4是十进制表明的,IPv6是十六进制表明的:
explicitIPAddress(conststd:
string&
用字符串类型的IP地址和指定的类型(IPv4或IPv6)创立一个IP地址,其间IPv4是十进制表明的,IPv6是十六进制表示的:
IPAddress(conststd:
addr,Familyfamily);
用原生IP地址in_addr或in6_addr数据布局和给定的字符串长度,创立一个IPAddress:
IPAddress(constvoid*addr,poco_socklen_tlength);
用原生IP地址in_addr或in6_addr数据布局和给定的字符串长度,创立一个IPAddress,其间scope参数用于IPv6,IPv4会疏忽这个参数:
IPAddress(constvoid*addr,poco_socklen_tlength,Poco:
UInt32scope);
1.3重载运算符
IPAddress&
operator=(constIPAddress&
比较运算符
booloperator==(constIPAddress&
addr)const;
=(constIPAddress&
(constIPAddress&
1.4常用操作
swap:
voidswap(IPAddress&
address);
获取地址类型:
Familyfamily()const;
IPv6专用函数,回来scopeidentifier,如果是IPv4则回来0:
UInt32scope()const;
toString,IPv4则显现“d.d.d.d”,IPv6则
std:
stringtoString()const;
poco_socklen_tlength()const;
constvoid*addr()const;
intaf()const;
voidmask(constIPAddress&
mask);
mask,constIPAddress&
set);
staticIPAddressparse(conststd:
staticbooltryParse(conststd:
addr,IPAddress&
result);
staticIPAddresswildcard(Familyfamily=IPv4);
staticIPAddressbroadcast();
1.5IS函数
1.5.1是不是是未初始化状况
是不是是未初始化的全零状况(wildcard):
boolisWildcard()const;
1.5.2是不是是播送/组播/单播
是不是是播送地址(全零),与wildcard的区别是wildcard是未通过初始化的。
只要IPv4有播送地址,IPv6则回来false。
boolisBroadcast()const;
是不是是回环地址:
关于IPv4是127.0.0.1
关于IPv6是:
1
函数原型:
boolisLoopback()const;
是不是是多播:
关于IPv4是224.0.0.0到239.255.255.255规模;
关于IPv6是FFxx:
x:
x的规模:
boolisMulticast()const;
是不是是单播:
boolisUnicast()const;
1.5.2其他函数
bool
isLinkLocal()const;
boolisSiteLocal()const;
boolisIPv4Compatible()const;
boolisIPv4Mapped()const;
boolisWellKnownMC()const;
boolisNodeLocalMC()const;
boolisLinkLocalMC()const;
boolisSiteLocalMC()const;
boolisOrgLocalMC()const;
boolisGlobalMC()const;
1.5protected函数
protected:
voidinit(IPAddressImpl*pImpl);
C++POCO库中文编程参阅攻略(5)Poco:
SocketAddress
1枚举
最大地址长度,这个与Poco:
IPAddress中的界说能够类比,不过这里指的是`structsockaddr_in6
#ifdefined(POCO_HAVE_IPv6)
sizeof(structsockaddr_in6)
sizeof(structsockaddr_in)
2布局函数
创立一个wildcard的全0的IPv4的socket地址:
SocketAddress();
用Poco:
IPAddress和端口号创建IPv4或IPv6的SocketAddress:
SocketAddress(constIPAddress&
host,Poco:
UInt16port);
用std:
string和端口号创立IPv4或IPv6的SocketAddress:
SocketAddress(conststd:
host,conststd:
port);
explicitSocketAddress(conststd:
hostAndPort);
复制布局函数:
SocketAddress(constSocketAddress&
原生方法布局SocketAddress:
SocketAddress(conststructsockaddr*addr,poco_socklen_tlength);
3常用函数
voidswap(SocketAddress&
获取IPAddress、端口和地址类型:
IPAddresshost()const;
UInt16port()const;
IPAddress:
获取原生方法的地址长度、地址和地址族:
conststructsockaddr*addr()const;
toString:
booloperator==(constSocketAddres
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POCO 中文 编程