大螃嗨

好记性不如烂笔头

用户工具

站点工具


ethereum_cpp项目结构_p2p

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
ethereum_cpp项目结构_p2p [2017/09/27 07:58] – [概念] 螃蟹ethereum_cpp项目结构_p2p [2018/01/09 03:13] (当前版本) 螃蟹
行 3: 行 3:
 =====概念===== =====概念=====
   * UPnP  miniupnpc   * UPnP  miniupnpc
 +  * [[以太坊p2p节点发现算法|以太坊p2p节点发现算法]]
  
  
行 16: 行 17:
  
 ====miniupnpc.h使用的函数有==== ====miniupnpc.h使用的函数有====
- // 查询局域网内所有Upnp设备;按照链表的方式返回 +<code cpp> 
- UPNPDev* upnpDiscover() +// 查询局域网内所有Upnp设备;按照链表的方式返回 
-  +UPNPDev* upnpDiscover() 
- // 释放upnp设备链表 + 
- freeUPNPDevlist(UPNPDev*)+// 释放upnp设备链表 
 +freeUPNPDevlist(UPNPDev*)
   
  // 从upnp设备表中查询有效地设备;  // 从upnp设备表中查询有效地设备;
行 68: 行 70:
  // @result     : =0成功;非0失败  // @result     : =0成功;非0失败
  UPNP_DeletePortMapping(controlURL, servicetype, extPort, proto, remoteHost);  UPNP_DeletePortMapping(controlURL, servicetype, extPort, proto, remoteHost);
 +
 +</code>
 +====对upnp常见的操作====
 + // 根据指定的设备、和指定外网端口和通讯类型,获得映射端口
 + // @controlURL : 输入IGD设备的路径
 + // @servicetype: 输入IGD设备类型
 + // @extPort    : 输入映射出的外网端口
 + // @proto      : 输入该外网端口支持的类型TCP或UDP
 + // @inPort     : 输出内网port端口
 + // @inClient   : 输出内网IP地址
 + // @result     : =0成功;非0失败
 + UPNP_GetSpecificPortMappingEntry(controlURL, servicetype, extPort, proto, inClient, inPort);
 +
 +
 + // 根据指定的设备,获得所有的映射端口
 + // @controlURL : 输入IGD设备的路径
 + // @servicetype: 输入IGD设备类型
 + // @index      : 输出映射端口的个数
 + // @result     : =0成功;非0失败
 + UPNP_GetGenericPortMappingEntry(controlURL, servicetype, ....);
 +
 +
 + // 根据指定的IGD设备和路径,查询出外网IP
 + // @controlURL : 输入IGD设备的路径
 + // @servicetype: 输入IGD设备类型
 + // @expIp      : 输出外网IP地址
 + // @result     : =0成功;非0失败
 + UPNP_GetExternalIPAddress(controlURL, servicetype, extIp);
 +
 + // 获得指定设备的状态
 + // @controlURL : 输入IGD设备的路径
 + // @servicetype: 输入IGD设备类型
 + // @status     : 输出状态信息
 + // @uptime     : 
 + // @lastconnerr: 输出错误代码
 + // @result     : =0成功;非0失败
 + UPNP_GetStatusInfo(controlURL, servicetype, status, uptime, lastconnerror);
 +
 +
 + // 根据指定设备,获取连接类型
 + // @controlURL : 输入IGD设备的路径
 + // @servicetype: 输入IGD设备类型
 + // @connectType: 输出IGD设备的连接类型
 + // @result     : =0成功;非0失败
 + UPNP_GetConnectionTypeInfo(controlURL, servicetype, connectionType);
 +
 +
 + // 获得接收和发送的数据包总数、和字节总数
 + // @controlURL : 输入IGD设备的路径
 + // @servicetype: 输入IGD设备类型
 + UPNP_GetTotalBytesSent(controlURL, servicetype);
 + UPNP_GetTotalBytesReceived(controlURL, servicetype);
 + UPNP_GetTotalPacketsSent(controlURL, servicetype);
 + UPNP_GetTotalPacketsReceived(controlURL, servicetype);
 +
 +
 +
ethereum_cpp项目结构_p2p.1506499125.txt.gz · 最后更改: 2017/09/27 07:58 由 螃蟹