我是笑林新记,分享一下我使用C#的一些用法,希望对大家有帮助!欢迎关注微信公众号:笑林新记
Visual Studio版本:Enterprise 2015
.net Framework版本:3.5
本节内容
前面两篇文章中将了Socket服务端和客户端的开发,也实现了服务端和客户端之间的通信,然而只是客户端和服务端之间的通信是不够的,所以我留下了问题,就是如何实现多人聊天和客户端对客户端之间的通信。前面两篇文章的收藏量挺高的,将近200收藏,却没什么评论。不知道是什么情况。不管了,今天来讲一下聊天室群聊。
运行结果
先看结果:
从图上可以看到有两个客户端,端口分别是7692(张三),7696(李四),张三发送消息“大家好,我是张三”给服务器,服务器接收后将消息发送给所有的客户端。客户端张三和李四都接收到了消息,同样,李四发送的消息经过服务器转发,所有的客户端也都收到了消息,这就是一个简单的聊天室群聊。
服务端代码
要做到群聊,服务器和客户端分别要做哪些事情。
服务端:首先要建立服务端Socket接口,前面已经讲到,然后是开启一个不停执行的线程监听客户端连接,每当收到一个客户端连接,就将该连接保存到客户端列表中。接收客户端发送过来的消息,接收到消息后,将消息转发给客户端列表中的所有客户端。代码中都有注释,应该还是比较好懂的。
客户端代码
客户端:客户端分为主动发送和被动接收消息。主动发送属于主动行为,不需要线程,只需按钮发送事件即可。接收消息属于被动,所以需要开启一个线程实时接收服务器转发过来的消息。看代码,代码量不大,都有详细的注释。
图片中的代码未能完全展示,代码已上传至gitee上,下载方式如下:
公众号(笑林新记)回复“C#WinForm界面设计教程”获取git源码下载地址