【100分求解惑】socket收发自定义对象

Little柯南 2016-10-20 09:15:31
目前实现使用MulticastSocket组播收发数据,数据是自定义的类:public class IPCAddressDescription{private int token;private short cmd;private byte[] isn = new byte[20];},并且在get与set函数里面对上面变量做了处理,遇到的问题是:
1、怎么实现类似这样的自定义数据的收发?因为MulticastSocket对象传输的都是byte[]字节数组;
2、java传输数据是大端还是小端,传输是否需要做什么处理?
3、在对象的send与receive函数执行后,确保发送出去与接收到有什么判断接口或者机制?
...全文
467 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
NewMoons 2016-10-30
  • 打赏
  • 举报
回复
不就是序列化和反序列化么?java有现成的api啊。记得好像是ObjectOutputStream和ObjectInputStream,说白了就是把java对象转换成字节数组传输到目的地,然后再把字节数组转换成java对象,具体用法自己百度吧,现有例子代码一大堆。 如果你想跨语言,比如服务端是java的,客户端是Python或C++的,则可以用第三方协议包,印象中Thrift协议就可以,支持多语言。 至于你说的第2个和第3个问题都不是问题。主要还是要解决第一个问题。
渔丶 2016-10-28
  • 打赏
  • 举报
回复
1、怎么实现类似这样的自定义数据的收发?因为MulticastSocket对象传输的都是byte[]字节数组; kryo,直接序列化。 2、java传输数据是大端还是小端,传输是否需要做什么处理? 有区别吗,只要发送端和接收端协商好就可以了。 3、在对象的send与receive函数执行后,确保发送出去与接收到有什么判断接口或者机制? 防止半包?参考netty的LengthFieldBasedFrameDecoder
bcsflilong 2016-10-28
  • 打赏
  • 举报
回复
引用 6 楼 u010111033 的回复:
[quote=引用 3 楼 bcsflilong 的回复:] 我给你个建议 Socket 发送字符串你应该知道怎么做吧 将所有对象序列化成字符串 在接收后 在反序列化城对象
你说的这个思路没问题,谢谢。关于对象反串成字符串我再找找例子[/quote] http://www.cnblogs.com/xdp-gacl/p/3777987.html 看看这个就可以
Little柯南 2016-10-28
  • 打赏
  • 举报
回复
引用 3 楼 bcsflilong 的回复:
我给你个建议 Socket 发送字符串你应该知道怎么做吧 将所有对象序列化成字符串 在接收后 在反序列化城对象
你说的这个思路没问题,谢谢。关于对象反串成字符串我再找找例子
Little柯南 2016-10-28
  • 打赏
  • 举报
回复
引用 4 楼 Sun1956 的回复:
1. 自己定义数据包结构,一般为数据包长度+内容,不用byte的,java是通过流的方式发送和接收的 2. java好像是大端的,记不太清楚了。 3. 确认机制是内部的,但是你要定好数据包结构,才好判断这部分是不是接收完了,防止粘包等问题。
java通过流主要是tcp里面socket关联outputstream与inputstream,但是我这里使用多播,MulticastSocket关联的的packet,而packet关联的全是byte型的,故有上述一问
ps45221 2016-10-28
  • 打赏
  • 举报
回复
1. 自己定义数据包结构,一般为数据包长度+内容,不用byte的,java是通过流的方式发送和接收的 2. java好像是大端的,记不太清楚了。 3. 确认机制是内部的,但是你要定好数据包结构,才好判断这部分是不是接收完了,防止粘包等问题。
bcsflilong 2016-10-28
  • 打赏
  • 举报
回复
我给你个建议 Socket 发送字符串你应该知道怎么做吧 将所有对象序列化成字符串 在接收后 在反序列化城对象
Little柯南 2016-10-26
  • 打赏
  • 举报
回复
有没有大侠做java局域网开发的?求建议!
Little柯南 2016-10-24
  • 打赏
  • 举报
回复
求做java网络开发的过来给点建议

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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