C# Socket通信想群聊怎么办?看这里!

我是笑林新记,分享一下我使用C#的一些用法,希望对大家有帮助!欢迎关注微信公众号:笑林新记

Visual Studio版本:Enterprise 2015
.net Framework版本:3.5

本节内容

前面两篇文章中将了Socket服务端和客户端的开发,也实现了服务端和客户端之间的通信,然而只是客户端和服务端之间的通信是不够的,所以我留下了问题,就是如何实现多人聊天和客户端对客户端之间的通信。前面两篇文章的收藏量挺高的,将近200收藏,却没什么评论。不知道是什么情况。不管了,今天来讲一下聊天室群聊。

运行结果

先看结果:
在这里插入图片描述

从图上可以看到有两个客户端,端口分别是7692(张三),7696(李四),张三发送消息“大家好,我是张三”给服务器,服务器接收后将消息发送给所有的客户端。客户端张三和李四都接收到了消息,同样,李四发送的消息经过服务器转发,所有的客户端也都收到了消息,这就是一个简单的聊天室群聊。

服务端代码

要做到群聊,服务器和客户端分别要做哪些事情。
服务端:首先要建立服务端Socket接口,前面已经讲到,然后是开启一个不停执行的线程监听客户端连接,每当收到一个客户端连接,就将该连接保存到客户端列表中。接收客户端发送过来的消息,接收到消息后,将消息转发给客户端列表中的所有客户端。代码中都有注释,应该还是比较好懂的。
在这里插入图片描述

客户端代码

客户端:客户端分为主动发送和被动接收消息。主动发送属于主动行为,不需要线程,只需按钮发送事件即可。接收消息属于被动,所以需要开启一个线程实时接收服务器转发过来的消息。看代码,代码量不大,都有详细的注释。
在这里插入图片描述

图片中的代码未能完全展示,代码已上传至gitee上,下载方式如下:
公众号(笑林新记)回复“C#WinForm界面设计教程”获取git源码下载地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑林新记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值