# ice **Repository Path**: fananchong/ice ## Basic Information - **Project Name**: ice - **Description**: No description available - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-09-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #ice 使用ICE协议进行P2P通信的客户端例子 本例子使用了pjneth库,制作本例子,主要有2个目的: 1、制作1个可以方便使用的P2P通信客户端类 2、验证P2P客户端的可行性,验证P2P客户端工作的整个流程 本例子是参照pjneth库官方icedemo例子编写,主要工作改进3点内容: 1、封装提供简易接口 2、可连接多个对等方 3、提供信令服务器等,实际工作流程。 本例子目录说明: 1、common目录下ice.h、ice_peer.h是对pjneth库的封装 2、ice_client为使用 ice.h、ice_peer.h 封装类的P2P客户端 3、icedemo、pjturn-client、pjturn-srv为pjneth的官方例子 4、signaling_server为信令服务器例子 ice_client 使用方法: 1、开启turnserver 2、开启signaling server 3、开启ice_client,需要指定 turnserver、 signaling server ip和端口 4、使用ice_client控制台命令 login [name], 登录signaling server 5、使用ice_client控制台命令 connect [target],连接另外1个ice_client 6、使用ice_client控制台命令 send [target] [msg],给另外1个ice_client发送消息 TODO: 1、代码整理、代码REVIEW 2、目前已经验证了全部局域网内、turnserver外网、及 turnserver外网client电信网络 3种网络类型下p2p通信。手机网络及其他未知网络暂未验证(验证方法,client间相互连接后,关闭turnserver,查看是否client间可以通信)