原文网址: 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<, ");

            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(, HorizontalAlignment.Left);
            listView1.Columns.Add(, HorizontalAlignment.Left);

            foreach (User theUser in theUsers)
            {
                ListViewItem li = new ListViewItem();
                li.SubItems[].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=";
            user1.Name="天涯共此时";

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

            ")
            {
                userList.Add(user1);
                userList.Add(user2);
            }

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

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

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

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

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 售价249英镑 我曾经花了 ...

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

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地 ...

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

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  4. 介绍开源的.net通信框架NetworkComms框架 源码分析(三)PacketHeader

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

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

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地 ...

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

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

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

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  8. 介绍开源的.net通信框架NetworkComms

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

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

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

随机推荐

  1. ubuntu14.04 JDK安装

    JDK7 安装 1 sudo apt-get install openjdk-7-jdk 2 设置安装环境 在/etc/profile中追加: # Java support # export JAVA ...

  2. Career path of Bioinformatics

    Core services: Reward bioinformaticians http://www.nature.com/news/core-services-reward-bioinformati ...

  3. c++容器

    1.vector:实质是动态堆数组,连续存储的内存区域,支持快速的随机访问. 2.list:实质是双向循环链表,支持在中间进行快速的插入删除,但是不能支持快速的随机访问.非连续的内存区域. 3.deq ...

  4. C#的互操作性:缓冲区、结构、指针

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. 引用对象的使用和易产生bug的示例

    本文属原创,转载请注明出处:http://www.cnblogs.com/robinjava77/p/5481608.html  (Robin) QuoteTest(引用对象技巧) import ja ...

  6. JUC.Condition学习笔记[附详细源码解析]

    目录 Condition的概念 大体实现流程 I.初始化状态 II.await()操作 III.signal()操作 3个主要方法 Condition的数据结构 线程何时阻塞和释放 await()方法 ...

  7. php工作笔记7-概率算法

    a/m  b/m   c/m   d/m   10%    40%    20% a+b+c+d+... < = m array k   =  {a,b,c...} randt = rand(1 ...

  8. 稳定灵活的 HTML 列式布局

    主要特点: 所有列轻松实现相同高度 兼容性极高 ------------------------------------------------ 代码 ------------------------ ...

  9. 4中map遍历的方法

    public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...

  10. linux 获取线程号

    #include <sys/types.h> pid_t gettid(void); 如果系统库里没有,则可以这样做: #include <sys/syscall.h> pid ...