此系统只是为了让自己多了解一下有关底层通信协议的相关知识。
聊天功能是通过Socket利用Tcp协议来实现。
聊天服务端:chatServer
聊天客户端:chatClient
---聊天,是通过聊天服务端监听,一旦有客户连接上此服务端,那么聊天服务端就保存这个客户端的Socket实例,并存放在一个IDictionnary内(全部的在线用户),然后将已经存在的用户信息发送给此聊天客户端(客户端显示在线列表),再将此客户端的信息发送给所有已经存在的客户端用户(及时更新客户端在线用户列表)。与此同时,在服务端为每个连接上服务器的客户端Socket实例,创建一个线程去监听客户端发来的信息。
五子棋游戏是通过Socket封装的TcpClient类来实现。
游戏服务端:每个聊天客户端都可以充当游戏服务端(邀请者=游戏服务端)
游戏客户端:那就是接收邀请的用户了
--五子棋游戏,首先通过聊天的功能发送邀请给指定用户(作为游戏服务端开始监听),用户如果接受邀请,那么就创建连接。之后利用游戏建立的通信来发送五子棋的坐标。
个人觉得需要注意的方面:
1、操作不同线程的控件。
解决方式:利用委托或者直接声明线程间的控件可以互用。参考:http://www.cnblogs.com/cadlife/articles/2425820.html
2、画棋盘方面,例:当窗体程序最小化,再打开时,棋盘会自动重绘。
解决方式:重绘棋盘的同时,再让其重绘棋子即可。(期待有好的方法)
3、判断胜利
4、资源的释放。
源码下载 存在问题之处请指正....
本文转自武沛齐博客园博客,原文链接:http://www.cnblogs.com/wupeiqi/archive/2013/05/01/3053170.html,如需转载请自行联系原作者