.net 稳定 高效 易用 可同步 TCP 通信框架
来源:互联网 发布:7u分享网络可信吗 编辑:程序博客网 时间:2024/06/07 02:30
.net 稳定 高效 易用 可同步 TCP 通信框架
使用平台:
WinXP,WIN7,WIN8,WINCE,WINPHONE。
使用.net 2.0 框架。
主要功能介绍:
1、可以代替 Oracle,Mysql客户端 在不安装Oracle,MySql客户端的情况下访问, 对数据库进行间接访问(需开始框架的服务器端)。
2、可以使本来没有网经功能的Sqlite具有网络访问的能力。(也是需要开启服务器端) 以上两点可以兼容现有代码生成器时,客户端代码仅需要特别小的改动就可以。
3、基本功能。可以实现聊天,传文件,图片。
4、使用长连接,有断线自动连接功能,心跳包。
5、使用自定义数据包协议,自建Session机制加强数据连接安全。
6、框架稳定,支持高并发。
7、简单的事件处理机制。使用更加简单。
8、支持同步处理,使程序的开发更架简单,不需要另行回调处理。
下载地址:
使用方式:
首选需要 引用 DataUtils.v1.1.dll。DataUtils 内包含客户端与服务器端 处理类。
1、服务器端 代码示例。
设置服务器端默认端口 ,不设置端口会使用默认端口
TcpSettings.DefultPort = 8511;
既可以使用静态默认对象,也可以创建服务器端对象。
SocketListener server= new SocketListener();
对象创建后 注册一些事件,以接收客户端发送的信息。
SocketListener.Server.RegeditSession += new Feng.Net.Tcp.SocketListener.RegeditSessionEventHandler(server_RegeditSession);
RegeditSession 事件用于是否允许客户端连接此服务器。可以使用用户名,密码的核对方式。
SocketListener.Server.DataReceive += new SocketListener.DataReceiveEventHandler(server_DataReceive);
DataReceive 在这个事件里处理接收到的数据。
事件注册完成就可以打开监听
SocketListener.Server.StartListening();
2、客户端 代码示例
设置服务器的IP地址
TcpSettings.DeafultIPAddress = "192.168.1.3";
TcpSettings.DefultPort = 8511;//不设置端口会使用默认端口。
这样就可以使用默认的静态客户端了。
也可以自己创建对象。
客户端创建后需要在Connected事件注册用户,以限制某些用户是否可以使此链接。用户来源可以是数据库等。
void client_Connected(object sender, SocketClient sh)
{
Client.RegeditSession("aaa", "bbb");
}
发送文字消息给其他用户
SocketClient.Client.SendToOtherUser(string user, string text); //USER代表发达的目白用户,text表示为发送的内容。
发送图片,音频,视屏可以使用
SocketClient..SendToOtherUser(string user, byte[] data)////USER代表发达的目白用户,data表示为发送的内容。
data数据中数据有多种类型时可以使用
using (Feng.IO.BufferWriter bw = new Feng.IO.BufferWriter())
{
bw.WriteBitmap(new Bitmap(100, 100));
bw.Write(text);
bw.Write(DateTime.Now);
client.SendToOtherUser(user, bw.GetData());
}
接收数据时解析时可以使用
void client_RecviceUserData(object sender, PacketHelper ph, string uc, byte[] data)
{
using (Feng.IO.BufferReader reader = new Feng.IO.BufferReader(data))
{
Bitmap bmp = reader.ReadBitmap();
string text = reader.ReadString();
DateTime dt = reader.ReadDateTime();
}
}
与服务器端通信
同步通信 会阻塞当前线程,直到接收到返回信息或超时
Send(int usercommandid, byte[] invalue, out byte[] outvalue);
usercommandid用来区分用户发的信息。invalue代表发送的内容。outvalue代表返回的内容。
使用场景:当用户点击某一按钮,想要取得某信息时,而此时又不想在此按钮事件外处理时使有和。
异步通信 不会阻塞当前线程。
Post(int usercommandid, byte[] invalue);
usercommandid用来区分用户发的信息。invalue代表发送的内容。
3.Android 客户端 android端使用java开发2.3SDK。
android端将在有时候的时候补上。
下载地址:
http://download.csdn.net/detail/zanfeng/8873711
- .net 稳定 高效 易用 可同步 TCP 通信框架
- 帮助您快速构建高效、稳定、且具有高可扩展能力的应用服务器的利器 -- TAS服务器框架
- 如何部署一个稳定高效可扩展的前端
- apache MINA 高效通信框架
- BOOST TCP 同步 网络通信
- SL4+net.tcp通信问题
- 关于TCP同步通信的理解
- 高效、稳定、可复用——手机淘宝主会场框架详解
- 车载机串口转TCP通信工具稳定版出来啦
- .NET下可复用的TCP通信层实现之TCP组件
- C# Tcp通信服务器的同步和异步方式
- C#学习笔记-socket通信(同步,客户端+服务器,TCP)
- TCP通信(一)——同步连接
- .NET 框架 1.1 可重新分发先决条件
- Microsoft.NET 框架可重新分发 EULA
- [.NET] 浅谈可扩展性框架:MEF
- Thrift可扩展高性能的通信服务框架
- ESFramework ——可堪重任的网络通信框架
- Training:背包专题
- Vim配置
- OGRE1.7以上版本隐藏LOGO及鼠标拾取物体关键
- 用二进制文件处理学生成绩
- swift tuple多元组
- .net 稳定 高效 易用 可同步 TCP 通信框架
- Enterprise Manager安装步骤
- 【DP_树形DP专辑】【9月9最新更新】
- wamp mysql服务无法启动
- 营销策略之信任流量【流量3.0时代】
- JS实现直接选择排序
- 修复ubuntu14.04的grub的方法
- 解决PHP后端生成的图片无法使用CDN缓存的方法
- QT设置窗口背景