需由Socket发送的的数据包,如何才能得到指定的格式呢?
            string sendStr = "534AC21100034A150098006666660000C9E8";            Socket sc = null;
            byte[] byteSend = System.Text.Encoding.UTF8.GetBytes(sendStr.ToCharArray());
            sc = (Socket)alSock[index - 1];
            sc.Send(byteSend);
这样发出的数据,明显不对,可是如何才能得到想要的格式呢?应当是这样的:
比如“534AC21100048A570098006666660000C9E8”这个字符串,每两位是一个字节元,如53,4A等。我如何把这个string转为需要格式的byte[]呢?没查到资料,请高手指点

解决方案 »

  1.   

    /// <summary>
    /// 得到指定字符串的二制数组形式
    /// </summary>
    /// <param name="_Source">要转移的字符串</param>
    /// <returns></returns>
    public static byte[] ToBytes(string _Source)
    {
    try
    {
    byte[] Result = System.Text.Encoding.Default.GetBytes(_Source);
    return Result;
    }
    catch(Exception myE)
    {
    throw myE;
    }
    }
      

  2.   

    发送什么样的数据得看接收方想要什么样的数据。
    就你这个想把如“534AC21100048A570098006666660000C9E8”这样的字符串拆分成2个字符转一个字节,没有什么直接的办法,c#没有提供按长度分割字符串的方法,但是可以循环使用SubString或者用正则表达式拆分。我觉得你需要好好考虑一下你们制定的收发协议。