WCF字节传输

流浪的麻雀 2015-10-12 09:09:22
想问一下在WCF中如何实现传输一条数据,怎么定义每个字段所占的字节宽度呢?这样就可以根据规定好的每个字段的字节宽度 来进行参数判断了?不知道我说清楚没?
...全文
498 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
本拉灯 2015-10-13
  • 打赏
  • 举报
回复

你直接用BinnaryWriter 写入字节后生成 byte[] ,然后通过Wcf转过去 然后再通过BinnaryReader 读取出来
BinnaryWriter
BinnaryReader 只要你用这两个把字节的写入读取顺序能一一对应的上,就可以了
宝_爸 2015-10-13
  • 打赏
  • 举报
回复
WCF中你可以使用类作为参数的类型,类的每个properties 作为你的参数。 这样就省掉了"可以根据规定好的每个字段的字节宽度 来进行参数判断了"
流浪的麻雀 2015-10-13
  • 打赏
  • 举报
回复
感谢各位 基本有了思路 谢谢!!!
五更琉璃 2015-10-13
  • 打赏
  • 举报
回复
你把字段定义成byte[]类型
ajianchina 2015-10-13
  • 打赏
  • 举报
回复
pos机一向是socket通信,不要再为此纠结了,除非你真的想用挖掘机的铲斗来做汤勺盛汤喝。
本拉灯 2015-10-13
  • 打赏
  • 举报
回复
引用 15 楼 lianqianxue 的回复:
[quote=引用 14 楼 wyd1520 的回复:]
[quote=引用 11 楼 lianqianxue 的回复:]
[quote=引用 7 楼 wyd1520 的回复:]
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

比如操作员:Bytes 2,批次号:Integer 4,交易号:Integer4 ,这是三个字段传输的时候是放在一个二进制刘字符串里。
然后根据每个字段所占的固定的长度去拆分属性?还是直接反序列化呢?[/quote]

这个用BinnaryReader就可以了
你只要这样
var reader=new BinnaryReader(new MemoryStream(字节));
short 操作员=reader.ReadShort();
int 批次号=reader.ReadInt32();
int 交易号=reader.ReadInt32();
你要确保字段顺序是能对应上的,还有对方发过来的字节是先高位还是先低位?JAVA里是先低后高,C++是先高后低
C#里面的BinnaryReader跟C++一样先高后低。[/quote]

这样他传过来就是一个stream ?[/quote]

那你自己要确认是啥,反正看你上面这么说的,就是一个byte[]了。
  • 打赏
  • 举报
回复
用了WCF就没必要去纠结什么字节宽度了
流浪的麻雀 2015-10-13
  • 打赏
  • 举报
回复
引用 14 楼 wyd1520 的回复:
[quote=引用 11 楼 lianqianxue 的回复:]
[quote=引用 7 楼 wyd1520 的回复:]
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

比如操作员:Bytes 2,批次号:Integer 4,交易号:Integer4 ,这是三个字段传输的时候是放在一个二进制刘字符串里。
然后根据每个字段所占的固定的长度去拆分属性?还是直接反序列化呢?[/quote]

这个用BinnaryReader就可以了
你只要这样
var reader=new BinnaryReader(new MemoryStream(字节));
short 操作员=reader.ReadShort();
int 批次号=reader.ReadInt32();
int 交易号=reader.ReadInt32();
你要确保字段顺序是能对应上的,还有对方发过来的字节是先高位还是先低位?JAVA里是先低后高,C++是先高后低
C#里面的BinnaryReader跟C++一样先高后低。[/quote]

这样他传过来就是一个stream ?
本拉灯 2015-10-13
  • 打赏
  • 举报
回复
引用 11 楼 lianqianxue 的回复:
[quote=引用 7 楼 wyd1520 的回复:]
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

比如操作员:Bytes 2,批次号:Integer 4,交易号:Integer4 ,这是三个字段传输的时候是放在一个二进制刘字符串里。
然后根据每个字段所占的固定的长度去拆分属性?还是直接反序列化呢?[/quote]

这个用BinnaryReader就可以了
你只要这样
var reader=new BinnaryReader(new MemoryStream(字节));
short 操作员=reader.ReadShort();
int 批次号=reader.ReadInt32();
int 交易号=reader.ReadInt32();
你要确保字段顺序是能对应上的,还有对方发过来的字节是先高位还是先低位?JAVA里是先低后高,C++是先高后低
C#里面的BinnaryReader跟C++一样先高后低。
流浪的麻雀 2015-10-13
  • 打赏
  • 举报
回复
引用 12 楼 ajianchina 的回复:
[quote=引用 10 楼 lianqianxue 的回复:]
socket 可以实现吗?和WCF有什么区别呢?socket可以跨平台吗?

完全跨平台,与平台无关。
如果你的应用仅仅是为pos数据通信,当然是该选socket,如果只是整个应用的其中一环,那另当别论。
如果你的pos机是整个应用中的一环,那我跟你说,你看看你的pos机是否支持post或get发送,我开发过几款全部是支持的,这样,你可以在应用中通过这种方式进行通信,当然,POS机厂家会提供完整的SDK,你根据他们的方式,包括加密方式进行开发就可以了。[/quote] 是支持 POS get好像不支持,要求用tcp
ajianchina 2015-10-13
  • 打赏
  • 举报
回复
引用 10 楼 lianqianxue 的回复:
socket 可以实现吗?和WCF有什么区别呢?socket可以跨平台吗?
完全跨平台,与平台无关。 如果你的应用仅仅是为pos数据通信,当然是该选socket,如果只是整个应用的其中一环,那另当别论。 如果你的pos机是整个应用中的一环,那我跟你说,你看看你的pos机是否支持post或get发送,我开发过几款全部是支持的,这样,你可以在应用中通过这种方式进行通信,当然,POS机厂家会提供完整的SDK,你根据他们的方式,包括加密方式进行开发就可以了。
流浪的麻雀 2015-10-13
  • 打赏
  • 举报
回复
引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

比如操作员:Bytes 2,批次号:Integer 4,交易号:Integer4 ,这是三个字段传输的时候是放在一个二进制刘字符串里。
然后根据每个字段所占的固定的长度去拆分属性?还是直接反序列化呢?
流浪的麻雀 2015-10-13
  • 打赏
  • 举报
回复
引用 8 楼 ajianchina 的回复:
pos的数据通信你该用socket写
你要选择适当的方式


socket 可以实现吗?和WCF有什么区别呢?socket可以跨平台吗?


流浪的麻雀 2015-10-13
  • 打赏
  • 举报
回复
引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]


比如操作员:Bytes 2,批次号:Integer 4,交易号:Integer4 ,这是三个字段传输的时候是放在一个二进制刘字符串里。
然后根据每个字段所占的固定的长度去拆分属性?还是直接反序列化呢?

引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]

引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 lianqianxue 的回复:]
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。[/quote]
ajianchina 2015-10-13
  • 打赏
  • 举报
回复
pos的数据通信你该用socket写 你要选择适当的方式
本拉灯 2015-10-13
  • 打赏
  • 举报
回复
引用 6 楼 lianqianxue 的回复:
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?


字节流的固定字节数去判断各个字段举个列子?你所说的字段是怎么组成的。
流浪的麻雀 2015-10-13
  • 打赏
  • 举报
回复
现在的问题是有个项目需要和POS接做接口,需要按照他们那边的同学协议以及接口方式去做,他们那边传输是所有的字段封装在一个字节流里,我们同、通过传来的字节流的固定字节数去判断各个字段。传过来之后我是需要反序列化 还是就是根据字节流去判断呢?大神们给个建议?用BinaryFormatter 可以实现吗?
ajianchina 2015-10-12
  • 打赏
  • 举报
回复
第一个问题,关于wcf如何传输一条数据,这个说起来话就长了,幸好我给你找了一个简单而又完整的例子,你可以照着试一下。 http://www.cnblogs.com/smileberry/archive/2012/08/06/2625328.html 第二个问题,关于怎么定义每个字段所占的字节宽度,我不知道你是不是指的长度,不过我跟你讲,就是三个字:“没必要”,当然wcf在配置的时候可以对数据的大小进行设置,但这指的是最大“容量”,你的需求其实只需判断Length就可以了。
  • 打赏
  • 举报
回复
wcf不是socket,没必要这么做,你定好数据契约和服务契约就可以了
流浪的麻雀 2015-10-12
  • 打赏
  • 举报
回复
没人啊

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧