C# SocketHelper 源码
2014-10-17 11:41
113 查看
玄机论坛Socket类库源码+Demo
本类库采用TcpLister,TcpClient高度封装,
采用NetworkStream进行异步模式读取数据.
采用Semaphore来进行并发控制,
我没有使用(IOCP)即完成端口,
我使用的是同步方式连接,海量数据并发不是靠异步就能解决的问题,在对学习Socket和想快速使用Socket的朋友来说,同步是很好的选择.
使用IOCP的Socket类正在测试阶段,稳定,排除BUG后一样会分享给大家.
可同时接受5000+连接同时访问,而CPU消耗完全忽略不计..
本着代码简洁,简单.通俗易懂的原则,进行代码封装,不像其他通信框架写很多各式各样的接口.对新手朋友和刚接触通信程序的朋友带来很大的困扰.
本代码完全开源,但请保留署名,以示尊重.!
下面我和大家一起来分享这个类库的使用方式.
先来看下服务端的界面
<ignore_js_op>
第一个列表框用来获取服务端状态信息.
第二个列表框用来获取客户端发来的消息.
一个下来列表框来记录客户端上线.边上的0来记录当前连接数
界面非常简洁,咱们来看类库的使用方式.
当引用xuanjiSocket类库以后,请添加
[C#] 纯文本查看 复制代码
?
添加服务端类.如果没有引入命名空间,那么可以将鼠标光标置于类变量中,按快捷键 Shift + Alt + F10 自动引入类库命名空间
[C#] 纯文本查看 复制代码
?
[C#] 纯文本查看 复制代码
?
在窗体加载事件中,完成对server变量的初始化.
这是本类非常重要的委托变量.
它的作用就是推送所有信息.!请在Start前对其初始化.!
[C#] 纯文本查看 复制代码
?
这是处理推送器消息的方法.!
大家可以看下这个自定义对象
[C#] 纯文本查看 复制代码
?
每个属性都有注释,来解释这个属性的作用..具体处理细节.请下载demo阅读
上面那些信息绝非无用,而是整个类的重中之重以及消息处理方式.
[C#] 纯文本查看 复制代码
?
之前在窗体加载时已经初始化过变量,现在直接使用它的InitSocket来配置服务端.使用Start方法启动监听.!
默认调用后便认为监听成功.!
如若其他情况,例如异常时: 会推送监听失败消息至服务端Rev方法中.具体参阅源码.
直接调用Stop方法即可停止服务端.Stop方法调用后,可继续启动服务端.!
至此,服务端的描述就介绍完了,使用非常简单,
你要做的就下面几件事:
1 、 声明服务端变量。
2 、 初始化推送器。
3 、 配置服务端。
4 、 启动服务端
服务端有两个自带方法
[C#] 纯文本查看 复制代码
?
该方法将会对所有连接至服务端的客户端发送消息.如果在发送中客户端下线或发生异常,服务端将维护客户端集合 ClientList
ClientList 会在客户端接入时添加.如果发生异常等情况会自动删除
[C#] 纯文本查看 复制代码
?
像单独某位客户发起数据.
当客户端连接时,除去ClientList会自动维护列表外,也会将客户端推送至UI界面,供大家组合自己想要的客户端列表.详细请阅读demo
<ignore_js_op>
客户端与服务端一样,需要先声明客户端变量,
[C#] 纯文本查看 复制代码
?
接着初始化推送器,
[C#] 纯文本查看 复制代码
?
配置客户端,启动客户端.
[AppleScript] 纯文本查看 复制代码
?
客户端发送方法,与服务端一致.调用Send方法.调用Start方法来连接服务器,调用Stop方法断开连接.支持断开后重新连接服务端
最后来一张运行时的截图吧
<ignore_js_op>
运行截图.jpg (250.42 KB, 下载次数: 6)
Demo + 类库下载地址:
http://www.xuanjics.com/thread-27-1-1.html
本类库采用TcpLister,TcpClient高度封装,
采用NetworkStream进行异步模式读取数据.
采用Semaphore来进行并发控制,
我没有使用(IOCP)即完成端口,
我使用的是同步方式连接,海量数据并发不是靠异步就能解决的问题,在对学习Socket和想快速使用Socket的朋友来说,同步是很好的选择.
使用IOCP的Socket类正在测试阶段,稳定,排除BUG后一样会分享给大家.
可同时接受5000+连接同时访问,而CPU消耗完全忽略不计..
本着代码简洁,简单.通俗易懂的原则,进行代码封装,不像其他通信框架写很多各式各样的接口.对新手朋友和刚接触通信程序的朋友带来很大的困扰.
本代码完全开源,但请保留署名,以示尊重.!
下面我和大家一起来分享这个类库的使用方式.
服务端的调用
先来看下服务端的界面
<ignore_js_op>
第一个列表框用来获取服务端状态信息.
第二个列表框用来获取客户端发来的消息.
一个下来列表框来记录客户端上线.边上的0来记录当前连接数
界面非常简洁,咱们来看类库的使用方式.
第一步,引入命名空间
当引用xuanjiSocket类库以后,请添加
[C#] 纯文本查看 复制代码
?
[C#] 纯文本查看 复制代码
?
?
SocketHelper.pushSockets = new SocketHelper.PushSockets(Rec);
这是本类非常重要的委托变量.
它的作用就是推送所有信息.!请在Start前对其初始化.!
[C#] 纯文本查看 复制代码
?
SocketHelper.Sockets
大家可以看下这个自定义对象
[C#] 纯文本查看 复制代码
?
上面那些信息绝非无用,而是整个类的重中之重以及消息处理方式.
启动类库,并开始监听
[C#] 纯文本查看 复制代码
?
默认调用后便认为监听成功.!
如若其他情况,例如异常时: 会推送监听失败消息至服务端Rev方法中.具体参阅源码.
停止服务端
直接调用Stop方法即可停止服务端.Stop方法调用后,可继续启动服务端.!
至此,服务端的描述就介绍完了,使用非常简单,
你要做的就下面几件事:
1 、 声明服务端变量。
2 、 初始化推送器。
3 、 配置服务端。
4 、 启动服务端
服务端发送信息
服务端有两个自带方法
[C#] 纯文本查看 复制代码
?
ClientList 会在客户端接入时添加.如果发生异常等情况会自动删除
[C#] 纯文本查看 复制代码
?
当客户端连接时,除去ClientList会自动维护列表外,也会将客户端推送至UI界面,供大家组合自己想要的客户端列表.详细请阅读demo
客户端介绍
<ignore_js_op>
客户端与服务端一样,需要先声明客户端变量,
[C#] 纯文本查看 复制代码
?
[C#] 纯文本查看 复制代码
?
[AppleScript] 纯文本查看 复制代码
?
最后来一张运行时的截图吧
<ignore_js_op>
运行截图.jpg (250.42 KB, 下载次数: 6)
Demo + 类库下载地址:
http://www.xuanjics.com/thread-27-1-1.html
相关文章推荐
- C#基于socket的聊天工具与其源码
- C#简易版Socket聊天室 附源码
- 使用C#.NET 实现高性能IPX/SPX SOCKET服务器 附源码
- C# 利用Socket.SendFile发送图片(源码)
- [IO] C# DirFileHelper文件与文件夹操作类教程与源码下载 (转载)
- C# DirFileHelper文件与文件夹操作类教程与源码下载
- C#进阶系列——一步一步封装自己的HtmlHelper组件:BootstrapHelper(三:附源码)
- C#基于socket的聊天工具与其源码
- C# FileOperateHelper文件操作类与源码下载
- [C#HttpHelper]官方产品发布与源码下载---苏飞版
- c# websocket 服务端,客户端 兼容低版本IE,支持超长数据传输 附源码
- 转载一个很经典的--C# Socket TCP和UDP报文及端口测试工具的开发(提供源码)
- C#HttpHelper官方产品发布与源码下载---苏飞版
- C#字符串操作类StringHelper源码
- C# WPF 基于Socket的企业聊天软件IM(源码)
- C#HttpHelper万能采集类源码和使用案例【超详细傻瓜式采集】
- [IO] C# FileOperateHelper文件操作类与源码下载
- 用C#实现生成PDF文档(附源码)
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分
- 开源代码:我做的天气预报服务程序[全C#源码]