客户端 发送的数据
 netstream.Write(new byte[] { 0, 4 }, 0, 2);
                    netstream.Write(Encoding.Unicode.GetBytes(user_tb.Text), 0, Encoding.Unicode.GetBytes(user_tb.Text).Length);
                    netstream. Write(Encoding.Unicode.GetBytes(mima_t.Text), 0, Encoding.Unicode.GetBytes(mima_t.Text).Length);服务端如何提取?分别提取就可以了
我写的是这样,但是不对
 
        private string DecodingBytes(byte[] s)
        {
            return string.Concat(s[0].ToString(), s[1].ToString());//接受第一个数据包。
                    byte[] _cmdBuff = new byte[128];
                    clientSkt.Receive(_cmdBuff);
                    string _cmd = DecodingBytes(_cmdBuff);
  switch (_cmd)
                    {
case "04":
                            {
                               
                                    
                                  
                               
                                string nam = Encoding.Unicode.GetString(_cmdBuff).TrimEnd('\0');//想提取客户端发来的user_tb.Text string _mima = Encoding.Unicode.GetString(_cmdBuff).TrimEnd('\0');//想提取mima_t.Text  
}
}后面的提取有些问题,正确的格式应该是什么?

解决方案 »

  1.   

    这是用的什么通讯?如果是WevService或WCF的话,是字符串你就直接传字符串,还需要编码解码干什么啊
      

  2.   

    后面的那个 
    string _mima = Encoding.Unicode.GetString(_cmdBuff).TrimEnd('\0');//想提取mima_t.Text  
    提取不到
      

  3.   

    用户名密码之间插个标识符吧,不然分不开的,比如这样
    netstream.Write(new byte[]{ 0 }, 0, 1);
    然后解码时在 case "04" 下
    string[] arr = Encoding.Unicode.GetString(_cmdBuff).TrimEnd('\0').Split('\0');
    string user=arr[0];
    string mima=arr[1];
      

  4.   

    编码用 UTF8 ,Unicode 不好处理
      

  5.   

    string mima=arr[1];
    显示 超出了数组限制
      

  6.   

    // 编码发送
    netstream.Write(new byte[] { 0, 4 }, 0, 2);
    byte[] usrarr = Encoding.UTF8.GetBytes(user_tb.Text);
    netstream.Write(usrarr, 0, usrarr.Length);
    netstream.Write(new byte[] { 0, 1 }, 0, 1);
    byte[] mimaarr = Encoding.UTF8.GetBytes(mima_t.Text);
    netstream.Write(mimaarr, 0, mimaarr.Length);// 接收解码
    byte[] _cmdBuff = new byte[128];
    clientSkt.Receive(_cmdBuff);string _cmd = Encoding.UTF8.GetString(_cmdBuff, 0, 2);
    switch (_cmd)
    {
        case "04":
            {
                string[] arr = Encoding.UTF8.GetString(_cmdBuff, 2, _cmdBuff.Length - 2).TrimEnd('\0').Split('\0');
                string user = arr[0];//想提取客户端发来的user_tb.Text
                string mima = arr[1];//想提取mima_t.Text             break;
            }
        default:
            break;
    }Unicode 不好处理,用 UTF8 编码
      

  7.   

    接收解码部分
    string _cmd = Encoding.UTF8.GetString(_cmdBuff, 0, 2);
    这行这样
    string _cmd = string.Concat(_cmdBuff[0].ToString(), _cmdBuff[1].ToString());