介绍开源的.net通信框架NetworkComms框架之三 传递List

原文网址: http://www.cnblogs.com/csdev

Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地址是:https://github.com/MarcFletcher/NetworkComms.Net

这一节讲一下,如何从服务器获取列表数据

示例图:

客户单点击 获取数据 从服务器返回数据

客户端代码:

  private void button4_Click(object sender, EventArgs e)
        {
            //GetUserList 是数据的请求消息类型
            //ResUserList 是服务器端返回消息类型 当服务器返回ResUserList的数据时  客户端自动对应获取
            IList<User> listUser = newTcpConnection.SendReceiveObject<string, IList<User>>("GetUserList", "ResUserList", 5000, "100");

            BindData(listUser);
        }

        public void BindData(IList<User> theUsers)
        {
            listView1.Items.Clear();
            listView1.Columns.Clear();
            listView1.View = View.Details;    //新增的 详细方式
            listView1.AllowColumnReorder = true;
            listView1.FullRowSelect = true;
            listView1.GridLines = true;

            listView1.Columns.Add("用户ID", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("用户名", 100, HorizontalAlignment.Left);

            foreach (User theUser in theUsers)
            {
                ListViewItem li = new ListViewItem();
                li.SubItems[0].Text = theUser.UserID.ToString();

                li.SubItems.Add(theUser.Name);

                listView1.Items.Add(li);

            }

        }

服务器端代码:

  private void button1_Click(object sender, EventArgs e)
        {
            //IP地址和端口
            IPEndPoint thePoint = new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text));
            //开始监听此IP和端口  使用TCP协议
            Connection.StartListening(ConnectionType.TCP, thePoint);

            NetworkComms.AppendGlobalIncomingPacketHandler<string>("GetName", IncomingMsgHandle);

            NetworkComms.AppendGlobalIncomingPacketHandler<User>("UserLong", IncoingHandleLogin);

            NetworkComms.AppendGlobalIncomingPacketHandler<string>("GetUserList", IncoingHandleGetUserList);

            button1.Text = "已经开始监听";
        }
  private void IncoingHandleGetUserList(PacketHeader header, Connection connection, string  param)
        {
            //模拟一些数据
            IList<User>  userList=new  List<User>();

            User  user1=new User ();
            user1.UserID="10000";
            user1.Name="天涯共此时";

            User  user2=new User();
            user2.UserID="20000";
            user2.Name="海上生明月";

            if (param == "100")
            {
                userList.Add(user1);
                userList.Add(user2);
            }

            else
            {
                userList.Add(user1);
            }
            connection.SendObject("ResUserList", userList);
        }

源码下载:http://pan.baidu.com/s/1geXMSef

时间: 2024-12-15 01:53:25

介绍开源的.net通信框架NetworkComms框架之三 传递List的相关文章

介绍开源的.net通信框架NetworkComms框架之二 传递类

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 使用networkcomms框架通信时,客户端发送消息,服务器端回复消息. 在介绍开源的.net通信框架NetworkComms 一文中,我们介绍了如何从客户端发送字符串给服务器端,以及如何从服务

介绍开源的.net通信框架NetworkComms框架 源码分析

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 售价249英镑 我曾经花了2千多购买过此通讯框架, 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 这个框架给我的感觉是,代码很优美,运行很稳定,我有一个项目使用此框架已经稳定运行1年多.这个框架能够

介绍开源的.net通信框架NetworkComms框架之一 首字节验证

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 使用networkcomms框架通信时,客户端发送消息,服务器端回复消息. 确保收到的消息,是用户发来的,而不是恶意消息,可以在networkcomms框架中加入首字节验证机制. 思路是这样的:

介绍开源的.net通信框架NetworkComms框架之五 心跳检测

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 我们知道TCP连接建立之后,如果没有心跳检测,连接一会就断开了.NetworkComms框架本身已经完美实现了心跳检测,我们在使用的时候不用再关心这个问

介绍开源的.net通信框架NetworkComms框架之四 消息边界

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 首先,使用TCP通信的时候存在消息边界的问题,也就是如何处理粘包问题,networkcomms 框架本身已经对这个问题有内置的解决方案,我们在使用框架时

介绍开源的.net通信框架NetworkComms框架之九 合并DLL

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 合并Dll 不属于网络通信部分的功能,NetworkComms 框架带有这样一个Demo,用于合并所有的DLL.很有用,所以单独讲一下. 程序实际调用的

介绍开源的.net通信框架NetworkComms框架 源码分析(二)ConnectionInfo

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net ConnectionInfo 是连接的信息类 用来存放连接类型(TCP,UDP),连接ID,创建连接时间,是否服务器端,本地地址,远端地址,最近通信时间

介绍开源的.net通信框架NetworkComms框架 源码分析(一)ConnectionState

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net public enum ConnectionState { /// <summary> /// The state of this connectio

介绍开源的.net通信框架NetworkComms框架之六 x509证书通信

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 首先对证书这一块,本人也不是特别了解,只是把NetworkComms本身带的Demo重新进行了整理.如果写的不对,请批评指正. 首先 服务器端: (1)