本文旨在用C#面向对象的方法实现P2P(Peer To Peer)(类QQ)会话系统。本文可作为学习C# P2P通信与面向对象程序设计的用例(包括所有源码)。
一、 通信组件:System.Net.Sockets.System.Net.Sockets.UdpClient。
二、 通信原理: 利用P2P之UDP穿透Cone(锥型)NAPT原理。
三、 系统特点:
1、所有会话命令均封装成对象。
2、每个命令对象都有Send(发送)与Exec();执行方法。Send方法用于把对象(自己)发到对方,Exec()方法完成对象的功能。
3、主要命令:Login(用户登录(C->S))、OnlineList(回复当前在线用户列表(S->C))、Upline(用户上线(S->C))、Logout(用户登出(C->S))、Leaveline(用户离线(C->C))、
Chat(会话(交谈、闲聊)(C->C || C->S->C))Relay(服务器转发)(C->S)、Abort(终止会话)(C->C || C->S->C)、Shutdown(停止服务)(S->S) 等。
1