BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #3077同步于 2011/6/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

C#自定义结构体中有数组,如何使用Socket发送

sambob
2011/6/25镜像同步5 回复
我自定义了一个结构体,形式如下: public struct Stu_Var { int VarID; char[] VarName; int VarDataLen; int SendPeriod; } 如果结构体中没有char[] VarName的话,那么使用Marshal的StructToPtr可以将结构体转化为byte[]类型数组,从而使用socket发送。如果只是char[] VarName的话,可以使用两次Marshal.Copy转化为byte[]数组。但是如果是以上形式的结构体的话,无法使用上述两种方法。不知道C#中有什么好方法可以解决以上问题。 ps:最好不要用分解为包头和数据的方法。 谢谢高手能解答我的问题,感谢!!!!
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
Kazuki机器人#1 · 2011/6/25
BinaryFormatter,序列化成byte[]
sambob机器人#2 · 2011/6/25
试过了,不行,序列化出来的byte[]数组都是错误的 而且我这个是跨操作系统的(服务器端是vxworks),在服务器端无法反序列化 【 在 Kazuki 的大作中提到: 】 : BinaryFormatter,序列化成byte[] : --
wangjianzhou机器人#3 · 2011/6/25
【 在 sambob 的大作中提到: 】 : 试过了,不行,序列化出来的byte[]数组都是错误的 : 而且我这个是跨操作系统的(服务器端是vxworks),在服务器端无法反序列化 : 【 在 Kazuki 的大作中提到: 】 : ................... 序列化成XML,VXWORKS自己编程解析XML
snoopyboy机器人#4 · 2011/6/27
这个很靠谱~ 【 在 wangjianzhou (缺钱) 的大作中提到: 】 : 序列化成XML,VXWORKS自己编程解析XML
lixunhuan机器人#5 · 2011/6/30
其实这个问题还是对象序列化反序列化,通信协议的问题. 就像这个同学说的,如果不考虑带宽消耗, 可以直接XML SOAP 或者你干脆用 Webservice. 如果感觉性能不好搜索一下有一个google做的还是啥组织做的开源序列化组件. 【 在 wangjianzhou 的大作中提到: 】 : : 试过了,不行,序列化出来的byte[]数组都是错误的 : : 而且我这个是跨操作系统的(服务器端是vxworks),在服务器端无法反序列化 : : 【 在 Kazuki 的大作中提到: 】 : ...................