(转)【探索发现】winform 网络传输时候封包与解包心得
2011-06-01 23:16
435 查看
原文地址:http://www.cnblogs.com/--Sam--/archive/2011/05/29/2061372.html
我这个不是一个很好的传输格式,希望可以得到各位的指点。
第一个字节代表:类型
第二个字节开始20字节代表:用户名
第21个字节开始20字节代表:密码
view sourceprint?
最后效果:
Demo:http://files.cnblogs.com/--Sam--/NetDataTranFormat.rar
我这个不是一个很好的传输格式,希望可以得到各位的指点。
第一个字节代表:类型
第二个字节开始20字节代表:用户名
第21个字节开始20字节代表:密码
view sourceprint?
private void button1_Click( object sender, EventArgs e) |
{ |
byte [] package = Pack(); |
Unpack(package); |
} |
static int userlength = 20; |
static int passlength = 20; |
//打包 |
private byte [] Pack() |
{ |
byte [] buffer = new byte [1024]; |
buffer[0] = 1; //类型 |
byte [] username =Encoding.UTF8.GetBytes( "Sam" ); //有长度限制 |
byte [] userpass =Encoding.UTF8.GetBytes( "Password" ); //有长度限制 |
Array.Copy(username, 0, buffer, 1, username.Length); |
Array.Copy(userpass, 0, buffer, 1 + userlength, userpass.Length); |
return buffer; |
} |
//解包 |
private void Unpack( byte [] buffer) |
{ |
int type = buffer[0]; |
byte [] username = new byte [userlength]; |
byte [] userpass = new byte [passlength]; |
Array.Copy(buffer, 1, username, 0, userlength); |
Array.Copy(buffer, 1 + userlength, userpass, 0, passlength); |
string strName = Encoding.UTF8.GetString(username).TrimEnd( '\0' ); |
string strPass = Encoding.UTF8.GetString(userpass).TrimEnd( '\0' ); |
string strInfo = string .Format( "类型: {0} 用户名:{1} 密码:{2}" , type.ToString(), strName, strPass); |
MessageBox.Show(strInfo, "解包完成" ); |
} |
Demo:http://files.cnblogs.com/--Sam--/NetDataTranFormat.rar
相关文章推荐
- 【探索发现】winform 网络传输时候封包与解包心得
- [原创]C#之探索发现:在WinForm上写的一个模拟分页小程序
- BaseAdapter中重写getview的心得以及发现convertView回收的机制
- myeclipse常用快捷键(翻电脑的时候发现的,忘记哪里来的了)
- 今天在给同事改程序的时候,发现了java中Runtime
- Eclipse自动补全设置与Eclipse源代码下载 以前使用VisualStudio和Sublime写代码的时候有很完善的代码提示,但是最近开始使用Eclipse弄JAVA的时候发现它的代码提示不
- 心得:产品经理的作用,就是定方向、定义功能、探索和解决市场需求。项目经理只是盯进度而已
- [android盈利模式探索]心得分享--Android开发、盈利攻略
- Spring MVC 文件下载时候 发现IE不支持
- 最近在做即时通讯,能收到消息的通知,问题是在聊天界面里如何在收到消息的时候刷新聊天listview,找遍sdk也没发现
- XSL与C#(Winform)心得
- 测试的时候发现的问题
- ActiveReport使用心得(七):用户使用非ie浏览器的时候
- 谈一下我学习栈的时候一点点心得
- tar解包的时候如何exclude一些目录
- 六级词汇总结( 整理自己的大学时候的资料发现的好东东!!~~)
- Winform下的地图开发控件(GMap.NET)使用心得之二
- 绑定gridview的时候,如果发现某条记录满足一定条件,那么改行记录背景色变成红色
- 今天碰到一个poi解析excel文件的时候报错, 后来发现是这个excel文件单元格里面有公式。删除公式问题解决!
- 安装MYSQL遇到的问题后来无意发现是卸载的时候没有卸载完全导致,下面给出完整的卸载MySQL 5.1的卸载方法: 1、控制面板里的增加删除程序内进行删除 2、删除MySQL文件夹下的