struct msg
{
public string send_id;
public string mb_id;
public string content;
public int type;
}
msg mg = new msg();
mg.mb_id="你好";
mg 转换 byte;
发送 byte;服务端
接收byte;
byte 转换 msg结构体;
mg.mb_id 乱码Encoding.UTF8.GetBytes()单纯的转byte会用,可是在结构体中才能解决乱码问题呢?
{
public string send_id;
public string mb_id;
public string content;
public int type;
}
msg mg = new msg();
mg.mb_id="你好";
mg 转换 byte;
发送 byte;服务端
接收byte;
byte 转换 msg结构体;
mg.mb_id 乱码Encoding.UTF8.GetBytes()单纯的转byte会用,可是在结构体中才能解决乱码问题呢?
private string stockcode;
然后再struct上加上
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
struct mystruct
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
private string stockcode;}
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
能给解释一下原理吗?谢谢
圣经说:你必须知道真相,因为真相会让你更自由~~
mg.mb_id = mb_id;
mg.type = 0;
mg.content = ipa.ToString();
MsgSend = serialize(mg);
ClientSocket.Send(MsgSend, MsgSend.Length, SocketFlags.None);
}
public static byte[] serialize(object obj)
{
IFormatter formatter = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
formatter.Serialize(ms, obj);
byte[] tmp = ms.ToArray();
ms.Close();
return tmp;
}换成了序列化,请问一下应该怎么接呢?高人给指点一下吧
ClientSocket[ClientNum].Receive(MsgGet, MsgGet.Length, SocketFlags.None);
???