我是C#中的股票新手,我希望在C#中发送一个对象。已经使用的BinaryWriter发送数据(工作正常的字符串),但它似乎并不具有像通过套接字发送对象
writer.Writer(new SerliaizedObject());
的方法,我们是如何实现这一使用BinaryReader在/的BinaryWriter
UPDATE: 我用下面的函数通过对象转换为字节,跨发送到客户端
public static byte[] SerializeToBytes<T>(T item)
{
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
formatter.Serialize(stream, item);
stream.Seek(0, SeekOrigin.Begin);
return stream.ToArray();
}
}
public static object DeserializeFromBytes(byte[] bytes)
{
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream(bytes))
{
return formatter.Deserialize(stream);
}
}
发送数据时:
formatter = new BinaryFormatter();
MessageBox.Show(SerializeToBytes<mydata>(new mydata()).Length+"");
writer.Write(SerializeToBytes<mydata>(new mydata()));
ChatBox.AppendText("Client Says :" + UserMessage.Text + "\r\n");
,并阅读我所使用的数据:
while (true)
{
byte[] bytes = reader.ReadBytes(120);
mydata temp = DeserializeFromBytes(bytes) as mydata;
ChatBox.AppendText("Server Says " + temp + "\r\n");
}
但是读者似乎并不工作,任何想法?
序列化对象到一个字节数组并写入? –
在转换为数组之前,您不需要查找流的开头。 – dasblinkenlight