.net 稳定 高效 易用 可同步 TCP 通信框架

.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

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值