通过SOCKET或TCP可以在两台机器之间传送数据结构吗?比如传一个DATAGRID?
通过SOCKET或TCP可以在两台机器之间传送数据结构吗?
比如传一个DATAGRID或者传一个自定义的结构数组 谢谢
------解决方案--------------------可以,序列化就行了.
------解决方案--------------------DataGrid传过去有啥用? :)
用BinaryFomatter可以将自定义的结构序列化到MemoryStream,然后再ToCharArray转换到数组,经Socket发送
------解决方案--------------------同意楼上
------解决方案--------------------你传一个DataGrid干什么,你要传数据直接将DataSet中的数据通过Xml方式导出来,再将Xml字符串传过去不就得了。其他的话可以将对象序列化,在那一头反序列化就可以了。
------解决方案--------------------可以用remoting来试试,直接传实例过去。
------解决方案--------------------mark
------解决方案--------------------传datagrid?嗯,有创意 :D
传数据就可以了嘛,一般都是序列化
------解决方案--------------------remoting
------解决方案--------------------序列化
------解决方案--------------------remoting
------解决方案--------------------SOCKET又不能传对象的,通通以BYTE方式传
你自己编码解码就是了
想简单就用REMOTING,其实是封装好的带SOAP协议的SOCKET
------解决方案--------------------up...
------解决方案--------------------给你个序列化和反序列化对象的类吧。
using System.Runtime.Serialization.Formatters.Binary;
namespace Formatter
{
/// <summary>
/// FormatterHelper 序列化,反序列化消息的帮助类
/// </summary>
public class FormatterHelper
{
public static byte[] Serialize(object obj)
{
BinaryFormatter binaryF = new BinaryFormatter();
MemoryStream ms = new MemoryStream(1024 * 10);
binaryF.Serialize(ms, obj);
ms.Seek(0, SeekOrigin.Begin);
byte[] buffer = new byte[(int)ms.Length];
ms.Read(buffer, 0, buffer.Length);
ms.Close();
return buffer;
}
public static object Deserialize(byte[] buffer)
{
BinaryFormatter binaryF = new BinaryFormatter();
MemoryStream ms = new MemoryStream(buffer, 0, buffer.Length, false);
object obj = binaryF.Deserialize(ms);
ms.Close();
return obj;
}
}
}
------解决方案--------------------我感觉传什么都要填到
byte[]中吧
不知道对不
做个记号
看大家怎么理解的