zoukankan      html  css  js  c++  java
  • (转)【探索发现】winform 网络传输时候封包与解包心得

    原文地址:http://www.cnblogs.com/--Sam--/archive/2011/05/29/2061372.html

    我这个不是一个很好的传输格式,希望可以得到各位的指点。

    第一个字节代表:类型

    第二个字节开始20字节代表:用户名

    第21个字节开始20字节代表:密码

    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:https://files.cnblogs.com/--Sam--/NetDataTranFormat.rar

  • 相关阅读:
    day12-html(css)
    day-12- 前端 html
    python-day11 pymysql
    day11-mysql 练习题
    python-day11 Mysql 数据类操作
    python-day11 Mysql 数据类型
    python-day11-MYSQL 数据库及数据表
    最简单的checkbox, radio跟文字在一行
    前端压缩
    table td 设置宽高无效的问题
  • 原文地址:https://www.cnblogs.com/fcsh820/p/2067497.html
Copyright © 2011-2022 走看看