NetworkComms V3 使用TCP通信传递IList<T>类型的数据
客户端从服务器获取一组IList<T>类型的数据非常常见(通常从数据库中获取)
我们用NeworkComms V3来演示一下(NetworkcommsV2.x版本也同样支持)
[ 使用protobuf.net序列化器]
第一步创建相关的工程文件:

MessageContract中的 User类为契约类,使用protobuf.net进行序列化
写法如下:
using System;
using System.Collections.Generic;
using System.Text;
using ProtoBuf;
namespace MessageContract
{
[ProtoContract]
public class User
{
private string userID = string.Empty;
private string name = string.Empty;
public User()
{ }
[ProtoMember()]
public string UserID
{
get { return userID; }
set { userID = value; }
}
[ProtoMember()]
public string Name
{
get { return name; }
set { name = value; }
}
}
}
服务器端程序:
1、开始监听
//服务器开始监听客户端的请求
//开始监听某端口
Connection.StartListening(ConnectionType.TCP, new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text)));
button1.Text = "监听中";
2、注册相应的处理器
NetworkComms.AppendGlobalIncomingPacketHandler<string>("ReqUsers", IncomingReqUsersHandle);
3、处理方法
private void IncomingReqUsersHandle(PacketHeader header, Connection connection, string msg)
{
try
{
//模拟一些数据 返回给客户端
IList<User> users = new List<User>();
User user1=new User ();
user1.Name="名山大川";
user1.UserID=";
User user2=new User ();
user2.Name="日月江河";
user2.UserID=";
users.Add(user1);
users.Add(user2);
connection.SendObject("ResUsers", users);
}
catch (Exception ex)
{
LogTools.LogException(ex, "IncomingMsgHandle");
}
}
客户端代码:
1、连接服务器
connInfo = new ConnectionInfo(txtIP.Text, int.Parse(txtPort.Text));
//如果不成功,会弹出异常信息
newTcpConnection = TCPConnection.GetConnection(connInfo);
2、点击下图中的按钮,获取数据

private void button3_Click(object sender, EventArgs e)
{
IList<User> resMsg = newTcpConnection.SendReceiveObject<, "Test");
listBox2.DataSource = resMsg;
listBox2.DisplayMember = "name";
listBox2.ValueMember = "name";
}
效果图如下:

www.networkcomms.cn编辑
相关的文章:
客户端通过TCP通信分页从服务器获取数据
NetworkComms V3 使用TCP通信传递IList<T>类型的数据的更多相关文章
- python--教你做个最简单的tcp通信。。
TCP协议:建立在IP协议之上的,TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由I ...
- 艺萌文件上传下载及自动更新系统(基于networkComms开源TCP通信框架)
1.艺萌文件上传下载及自动更新系统,基于Winform技术,采用CS架构,开发工具为vs2010,.net2.0版本(可以很容易升级为3.5和4.0版本)开发语言c#. 本系统主要帮助客户学习基于TC ...
- NetworkComms V3 之支持TCP连接和UDP连接
NetworkComms V3 无缝的支持TCP连接和UDP连接. 您可以很容易的创建这两种连接 //创建一个连接信息对象 ConnectionInfo connInfo = ); //创建一个TCP ...
- NetworkComms V3 使用Json序列化器进行网络通信
刚才在网上闲逛,偶然看到一篇文章 C#(服务器)与Java(客户端)通过Socket传递对象 网址是:http://www.cnblogs.com/iyangyuan/archive/2012/12/ ...
- NetworkComms V3 之同步收发数据
NetworkComms网络通信框架序言 NetworkComms通信框架,是一款来自英国的c#语言编写的通信框架,历时6年研发,成熟稳定,性能可靠. NetworkComms v3的核心功能在一定程 ...
- TCP通信中的大文件传送
TCP通信中的大文件传送 源码 (为节省空间,不包含通信框架源码,通信框架源码请另行下载) 文件传送在TCP通信中是经常用到的,本文针对文件传送进行探讨 经过测试,可以发送比较大的文件,比如1个G ...
- 客户端程序通过TCP通信传送"小文件"到服务器
客户端程序通过TCP通信传送"小文件"到服务器 [c#源码分享]客户端程序通过TCP通信传送"小文件"到服务器 源码 (不包含通信框架源码,通信框架源码请另行 ...
- [c#源码分享]TCP通信中的大文件传送
NetworkComms网络通信框架序言 源码 (为节省空间,不包含通信框架源码,通信框架源码请另行下载) 文件传送在TCP通信中是经常用到的,本文针对文件传送进行探讨 经过测试,可以发送比较大的 ...
- NetworkComms V3 模拟登陆
演示NetworkComms V3的用法 例子很简单 界面如下: 服务器端代码: 开始监听: //服务器开始监听客户端的请求 Connection.StartListening(ConnectionT ...
随机推荐
- 以小时候玩的贪吃蛇为例,对于Java图像界面的学习感悟
简介 正文 01.JFrame是啥? 02.JPanel 03. KeyListener 04.Runnable 05.游戏Running 06.游戏初始类编写 07.main 简介: 一直以来用代码 ...
- Excel与Word套打功能使用技巧及EXCEL数据处理成绩
Excel与Word套打功能使用技巧 婚礼邀请友人参加,就需要写请柬.而且写请柬不但要求字写得端正,还不能有错别字,再加上邀请的朋友多,写请柬就是一个劳累活.这时我们利用Word的套打功能,就会让写请 ...
- 。U盘安装CentOS6.5
最近着手自学Linux,网上有很多CentOS的各种版本,但查阅到的教程基本都是关于CentOS6的,本着最新的版本并不一定是最适合的版本的原则,我选择安装CentOS6.5.安装系统稍微不注意就会出 ...
- Extjs MVC学习随笔01
Extjs Mvc模式下的整个MVC框架体系即下图: 包含了Controller(实现方法层),Store(数据来源管理层),View(页面布局层).之所以用MVC我想是因为减轻针对某一页面的单一的J ...
- 深入理解IOC模式及Unity框架
研究了下,有几篇博客确实已经说得很清楚了 1.IoC模式:http://www.cnblogs.com/qqlin/archive/2012/10/09/2707075.html 这篇博客是通过一个 ...
- JS 之JSON
JSON是Javascript中的对象,其简单理解为下:
- (转)pymysql 连接mysql数据库---不支持中文解决
往数据库里插入中文时出现异常:UnicodeEncodeError: 'latin-1' codec can't encode characters 就是编码的问题,pymysql默认的编码是lati ...
- ssm+redis 如何更简洁的利用自定义注解+AOP实现redis缓存
基于 ssm + maven + redis 使用自定义注解 利用aop基于AspectJ方式 实现redis缓存 如何能更简洁的利用aop实现redis缓存,话不多说,上demo 需求: 数据查询时 ...
- Redis教程(三) list类型
一.概述: redis的list类型其实就是一个每个子元素都是string类型的双向链表.所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1) 另外list会记录链表的长度.所以ll ...
- javascript事件之:谈谈自定义事件(转)
http://www.cnblogs.com/pfzeng/p/4162951.html 对于JavaScript自定义事件,印象最深刻的是用jQuery在做图片懒加载的时候.给需要懒加载的图片定义一 ...