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

  • 相关阅读:
    【回顾整理】HTML+CSS个的两个实战项目
    【转】tkinter实现的文本编辑器
    迟到的tkinter---学校选课刷屏器
    调用有道翻译API
    【leetCode】3Sum Closest
    【LeedCode】3Sum
    【LeedCode】String to integer(atoi)
    【LeetCode】Reverse digits of an integer
    前端工程师必备PS技能
    【LeetCode】Add Two Numbers
  • 原文地址:https://www.cnblogs.com/fcsh820/p/2067497.html
Copyright © 2011-2022 走看看