CSkin博客

标题: 【C#Socket】BinGoo系列之Socket组件《二、服务端的类库封装》 [打印本页]

作者: Blue_Pen    时间: 2014-11-7 12:26
标题: 【C#Socket】BinGoo系列之Socket组件《二、服务端的类库封装》
本帖最后由 Blue_Pen 于 2016-10-25 13:39 编辑

BinGoo系列之Socket组件《二、服务端的类库封装》

* 简介:基于底层socket的服务端监听,非TcpListener,代码量精简,本片文章提供上篇文章提到的客户端更新源码(说明简介在封装类的开头)
* 功能介绍:基于底层的Socket服务端监听,监听客户端连接,接收客户端发送的数据,发送数据给客户端,心跳包(代码已注释,根据需要将代码取消注释)
* socket服务端监听封装类的调用三步:
* 1、初始化:
* int port=5100
* TCPServer _tcpServer=new TCPServer(port);
*
* 2、创建委托接收数据方法并绑定(可根据需求定义),此类暂时定义了四种接收数据的委托:返回接收客户端的数据,返回客户端连接状态和监听状态,返回错误信息,返回客户端数量的委托
*
* ①申明返回接收数据信息的委托方法
* DelegateHelper.TcpServerReceive= 自定义方法;
*
* ②申明返回状态信息的委托方法
* DelegateHelper.TcpServerStateInfo= 自定义方法;
*
* ③申明放回错误信息的委托方法
* DelegateHelper.TcpServerErrorMsg = 自定义方法;
*
* ④申明返回客户端数量档位委托方法
* DelegateHelper.ReturnClientCountCallBack = 自定义方法;
*
* 3、启动监听和关闭监听
* _tcpServer.Start();
*  _tcpServer.Stop();

代码截图及demo运行效果图:
1、服务端代码总行数预览图

不超过300行代码
2、代码片段预览图
服务端压力测试效果图


客户端效果图

500个客户端连接使用内存大约40多M


源码版本会随时更新,请注意更新时间

2014-11-27更新内容
1:修复socket服务端Stop停止方法,改进停止监听后断开所有客户端,并终止所有处于WaitSleepJoin状态的线程,防止客户端一直处于阻塞状态,无法判断服务器是否终止监听


2014-11-29更新内容
1:新增状态消息码,根据消息码来判断消息类型

2:解决改进部分代码浪费CPU资源方法
3:修改客户端"接收数据委托方法"绑定的代码错误


下面是最新的Socket控件组件连接:
【C#原生Socket通讯控件】BinGoo系列之Socket控件TCP+UDP
http://bbs.cskin.net/forum.php?mod=viewthread&tid=874&fromuid=101


下面的源码包含《SocketHelper.dll的更新源码+SocketHelperDemo版源码》
SocketHelper服务端及客户端封装源码及案例源码下载: SocketHelper20141215.zip (112.73 KB, 下载次数: 1750, 售价: 2 金钱)



作者: 乔克斯    时间: 2014-11-7 12:56
NICE~不错喵。。
作者: Blue_Pen    时间: 2014-11-7 14:16
乔克斯 发表于 2014-11-7 12:56
NICE~不错喵。。

也是这两年开发的总结。。。
作者: xiao32975472    时间: 2014-11-7 14:48
对我很有帮助!
作者: HJL    时间: 2014-11-7 15:00
在本论坛等 socket 相关的文章等了很久了!谢谢分享!~
作者: Blue_Pen    时间: 2014-11-7 15:22
HJL 发表于 2014-11-7 15:00
在本论坛等 socket 相关的文章等了很久了!谢谢分享!~

更多精彩请关注Cskin论坛.... ....
作者: iansoft    时间: 2014-11-8 05:11
凌晨进来顶楼主。
作者: hhjj3388    时间: 2014-11-12 14:01
厉害很不错 啊 ·!!!
作者: iansoft    时间: 2014-11-17 01:57
楼主 请问是否能做个 UDP打洞的 socket示例?
作者: Blue_Pen    时间: 2014-11-17 09:44
iansoft 发表于 2014-11-17 01:57
楼主 请问是否能做个 UDP打洞的 socket示例?

没时间去研究
作者: 老段    时间: 2014-11-19 08:55
先留份   这个肯定能用到
作者: cainiao    时间: 2014-11-20 14:49
刚下载,最近也在做net.tcp双工通信看看有没有帮助。先赞一个。
作者: 乔克斯    时间: 2014-11-27 09:43
干巴爹>A<慢慢完善。
作者: Blue_Pen    时间: 2014-11-27 09:52
乔克斯 发表于 2014-11-27 09:43
干巴爹>A

工作时用到自己的东西,发现的漏洞
作者: 乔克斯    时间: 2014-11-27 09:56
Blue_Pen 发表于 2014-11-27 09:52
工作时用到自己的东西,发现的漏洞

悲催。。上班了。。我要继续写文档了QAQ。。
作者: zkb0310    时间: 2014-11-29 22:35
看起来很不错的样子
作者: blazeangell    时间: 2014-12-9 22:21
NICE~不错喵。。
作者: hjw    时间: 2014-12-11 16:12
BinGoo系列之《Socket通讯之服务端》
请问,可以利用你的SocketHelper,做到:自己写的主程序放到服务器端,而客户端的程序调用服务器端的主程序中的方法,然后返回给客户端的计算结果,来完成客户端的操作。
作者: 腾讯科技    时间: 2014-12-15 02:10
nice 真心不错
作者: Johnnie    时间: 2014-12-17 20:15
感谢LZ对论坛做出的贡献~
作者: skye    时间: 2014-12-18 00:46
还蛮好玩的诶~好好研究之!
作者: dingzl2004    时间: 2014-12-27 16:06
参考下,学学socket
作者: thinhils    时间: 2014-12-30 11:04
最近學習socket,謝謝樓主
作者: hupo376787    时间: 2015-1-2 15:16
多谢楼主代码。。。
作者: newfeel    时间: 2015-2-10 15:00
感谢LZ对论坛做出的贡献~
作者: 特尼    时间: 2015-2-11 16:44
楼主辛苦了,下载来学习下啦!
作者: 半指柔沙    时间: 2015-2-11 17:34
挺厉害的样子看看哈哈
作者: marmothac    时间: 2015-2-25 11:20
总结的好啊,参考一下
作者: xsy131    时间: 2015-3-5 13:15
对我很有帮助!
作者: chenjacker    时间: 2015-3-17 05:27
停止监听。线程关掉不了
作者: kaihuieee    时间: 2015-3-17 11:10
下载看看吧
作者: lchevalier    时间: 2015-3-31 13:25
{:4_221:}{:4_221:}{:4_221:}{:4_221:}{:4_221:}{:4_221:}{:4_221:}{:4_221:}
作者: hi5438    时间: 2015-4-2 23:54
不错啊 很有帮助
作者: Gabriel    时间: 2015-4-4 09:10
O(∩_∩)O谢谢
作者: solond    时间: 2015-4-15 16:34
很给力的说
作者: wangjunjx8868    时间: 2015-4-28 13:52
难得一见的好资源!
作者: ririkaka    时间: 2015-5-14 00:30
谢谢LZ分析,好贵哦
作者: wangjiehun    时间: 2015-5-14 17:24
谢谢很好
作者: wangjiehun    时间: 2015-5-14 17:24
很好谢谢
作者: benleo    时间: 2015-5-17 18:42
学习中.
作者: DragonX    时间: 2015-5-18 01:05
感谢分享
作者: leetears    时间: 2015-5-25 21:28
目前做游戏就是没有socket的
作者: leetears    时间: 2015-5-25 21:29
就是没有socket的知识,作出的游戏只能单机,楼主代码借我参考参考,
作者: 天天向上    时间: 2015-6-3 10:09
楼主.这个传文件 HTML代码这些 是需要先转码 传输然后在 解码吗??

作者: chh919    时间: 2015-6-3 10:39
高手,谢谢!!!
作者: xkc    时间: 2015-6-4 03:38
看看!!!!!!!!!!!!!
作者: xkc    时间: 2015-6-4 03:38
看看!!!!!!!!!!!!!!
作者: raven2008    时间: 2015-6-5 18:50
有BUG!停止监听后还能收到客户端发来的数据
作者: hua    时间: 2015-7-28 13:56
socket 相关的文章等了很久了!谢谢分享!~
作者: Blue_Pen    时间: 2015-7-28 17:57
raven2008 发表于 2015-6-5 18:50
有BUG!停止监听后还能收到客户端发来的数据

扯淡
作者: w374406424    时间: 2015-7-28 23:06
看看            
作者: coco345    时间: 2015-8-13 21:30
好强大,学习了
作者: 花落自成空    时间: 2015-8-16 00:02
感谢分享,LZ辛苦了~谢谢
作者: wfyongzhi    时间: 2015-8-29 09:08
正好准备使用。
作者: 诺言不由衷    时间: 2015-8-29 13:46
下载了 还没用 感谢作者
作者: jolab    时间: 2015-10-8 01:54
收藏了。。。
作者: 王者VIP    时间: 2015-10-23 09:33
楼主你哪个帖子太贵了
作者: Blue_Pen    时间: 2015-10-26 10:09
王者VIP 发表于 2015-10-23 09:33
楼主你哪个帖子太贵了

分享出来就不错了,几个论坛金币签个到就行了
作者: xlz0008    时间: 2015-11-26 10:24
对我很有帮助!
作者: bigbigfee    时间: 2015-11-27 00:26
ying gai bucuo!
作者: zyz140    时间: 2015-11-27 08:51
历历历,下下来研究下
作者: wxzhouq    时间: 2015-11-27 16:23
好东西,谢谢分享。
作者: shilang0304    时间: 2015-11-28 00:20
移植server端后,再启动后再停止会卡死,哪位朋友遇到问题能帮解决一下,谢谢!
作者: wmiou2002    时间: 2015-12-1 11:59
感谢分享
作者: wmiou2002    时间: 2015-12-1 12:00
非常感谢楼主的分享,很不错
作者: hnfjj    时间: 2015-12-8 12:09
SocketHelper.dll的更新源码+SocketHelperDemo版源码》
作者: zackfoto    时间: 2015-12-12 02:41
最近真的从这里学习了不少,受教了。
作者: huangyouwei    时间: 2015-12-12 08:17
很不错的软件值得学习
作者: zyz140    时间: 2015-12-15 09:59
最近正好对这个有兴趣 ,想要研究下这个。赞赞赞
作者: 煎饼的归宿    时间: 2015-12-15 15:25
下来看看
作者: 煎饼的归宿    时间: 2015-12-15 15:25
下来看看
作者: seling    时间: 2015-12-17 17:30
学习了,原生态的,楼主辛苦了.....
作者: abweixx    时间: 2016-1-21 22:27
感谢分享,LZ辛苦了~
作者: msxujixi    时间: 2016-1-25 11:28
感谢LZ对论坛做出的贡献~~
作者: 飘渺    时间: 2016-3-12 22:24
666666666666666666666666666
作者: cnwolf    时间: 2016-3-27 12:00
很好很强大
作者: x740073529    时间: 2016-4-19 21:26
来下载一份做毕业设计  哈哈哈
作者: tiger0132    时间: 2016-5-29 13:09
楼主,能不能搞定外网?


作者: Blue_Pen    时间: 2016-5-30 10:53
tiger0132 发表于 2016-5-29 13:09
楼主,能不能搞定外网?

TCP外网一直可以
作者: cn00700700    时间: 2016-6-2 22:29
确实是非常不错的东西,收下了先
作者: LoveGanJiQi    时间: 2016-6-16 11:17
感谢LZ对论坛做出的贡献~
作者: susugood    时间: 2016-6-21 08:59
demo里边没有udp的
作者: corelly    时间: 2016-6-25 19:26
感谢无私分享
作者: keinn    时间: 2016-8-4 22:26
c#新手表示不知道如何用~~~
作者: abd60    时间: 2016-9-13 17:12
没金币,不硬气!给钱 给哦
作者: flasder    时间: 2016-10-23 13:02
厉害很不错 啊
作者: JieDavid    时间: 2016-10-25 08:05
,太厉害了,很不错哦
作者: neatrain    时间: 2016-10-25 16:10
CPU资源使用情况如何呢
作者: Blue_Pen    时间: 2016-10-26 09:22
neatrain 发表于 2016-10-25 16:10
CPU资源使用情况如何呢

最终版去下载《三、客户端+服务端组件的封装》,CPU使用可以忽略不计,内存也使用不多

作者: webfly2017    时间: 2017-1-7 11:44
感谢分享。。感谢分享。。
作者: dlxhs    时间: 2017-1-30 14:37
感谢楼主共享服务器和客户端编程源码!
作者: 风轻云淡    时间: 2017-7-25 17:20
lz辛苦了
作者: alechy    时间: 2017-8-11 09:17
不错,谢谢楼主!
作者: this.treatment    时间: 2017-9-27 22:42
研究研究研究
作者: wuqingzhong    时间: 2017-10-18 10:59
看着不错的样子
作者: 冥界丶狼魂    时间: 2017-12-5 15:19
厉害很不错 啊 ·!!!
作者: succfu22    时间: 2018-2-24 23:37
谢谢,我正在整理,到时会把类库发布
作者: ch_tao    时间: 2018-3-31 19:45
对我很有帮助!
作者: wwwiii520    时间: 2018-7-11 09:28
11111111111111111111111111111111111111111
作者: coolhq    时间: 2018-12-16 13:13
多谢楼主分享




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2