节点必须先登录服务中心, 才能读取好友列表, 查询用户, 请求服务中心的帮助以便进行 NAT 穿透等.
// AccountManager 需要一个网络代理(IAgent)与服务中心进行通信, // IAgent 可以基于 TCP, UDP, HTTP 等协议. HttpAgent agent = new HttpAgent(); // 基于 HTTP 协议的网络代理. agent.ServerUrl = "http://www.ideawu.net/?mediator"; // 创建一个用户判断本机是否在 NAT 之后, 以及帮助获取 Socket 的公网地址(IP:port). NatHelper natHelper = new NatHelper(); natHelper.ServerEndPoint = new IPEndPoint(IPAddress.Parse("22.2.2.2"), 10215); natHelper.Start(); // SessionListener 监听其它节点的会话请求, 决定是否接受某个请求. // 你可以实现你自己的 SessionListener, 使 AccountManager 只接受 // 好友的连接请求, 拒绝黑名单中的用户的请求. // 标准的 SessionListener 接受所有节点的会话请求. StandardSessionListener sessionListener = new StandardSessionListener(); sessionListener.Start(); AccountManager am = new AccountManager(); am.Agent = agent; am.NatHelper = natHelper; am.SessionListener = sessionListener; // 使用用户名和密码进行登录. am.Login("user01", "my password ***", null); am.Start();
备注: 本文是关于我的 P2P SDK 的介绍的一部分, 详细文档请见 http://www.ideawu.com/p2p/