频道栏目
首页 > 资讯 > 其他综合 > 正文

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

16-08-22        来源:[db:作者]  
收藏   我要投稿

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

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

示例图:

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

客户端代码:

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

            BindData(listUser);
        }

        public void BindData(IList 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("GetName", IncomingMsgHandle);

            NetworkComms.AppendGlobalIncomingPacketHandler("UserLong", IncoingHandleLogin);

            NetworkComms.AppendGlobalIncomingPacketHandler("GetUserList", IncoingHandleGetUserList);

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

            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

相关TAG标签
上一篇:不要为了SEO优化而只有SEO优化
下一篇:静中有动-动态类型
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站