数据发送的方式

stdying 2014-08-07 03:09:46
java 客户端需要想服务器发送A、B、C、D、E 5中不同格式的数据,现在想着两种方法:
1:
在每种数据对象中添加一个发送函数,如sendToTarget();
2:
统一将所有数据发送到队列中,再从队列中去除发送;

不知到哪种方法好些,或者有更好的方法
...全文
288 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
stdying 2014-08-11
  • 打赏
  • 举报
回复
引用 12 楼 abc_key 的回复:
我觉得应该用队列来临时存放欲发送的数据包,一条数据发出去后,若收到回复确认发送成功,则从队列中删除此消息;若发送失败,或其他原因导致失败,则将数据从队列中删除,再重新加入队列。
嗯。 如果说道具体的发送时,数据发送可能是随机的,这样每发送一条数据,是否需要开一个计时器或者只开一个计时器轮询队列里的所有数据包。 具体使用哪种方法不是很确定。
xlight2023 2014-08-11
  • 打赏
  • 举报
回复
我觉得应该用队列来临时存放欲发送的数据包,一条数据发出去后,若收到回复确认发送成功,则从队列中删除此消息;若发送失败,或其他原因导致失败,则将数据从队列中删除,再重新加入队列。
stdying 2014-08-11
  • 打赏
  • 举报
回复
引用 7 楼 longtian1213 的回复:
用消息对列发把
发送数据有点像TCP/IP ,每个发送出去的数据包,都需要加一个计时器,超时重发
stdying 2014-08-11
  • 打赏
  • 举报
回复
引用 9 楼 lliiqiang 的回复:
把数据再次封装,一个属性标识类型,另外一个属性直接指向数据.
发送数据有点像TCP/IP ,每个发送出去的数据包,都需要加一个计时器,超时重发
xlight2023 2014-08-11
  • 打赏
  • 举报
回复
引用 13 楼 stdying 的回复:
[quote=引用 12 楼 abc_key 的回复:] 我觉得应该用队列来临时存放欲发送的数据包,一条数据发出去后,若收到回复确认发送成功,则从队列中删除此消息;若发送失败,或其他原因导致失败,则将数据从队列中删除,再重新加入队列。
嗯。 如果说道具体的发送时,数据发送可能是随机的,这样每发送一条数据,是否需要开一个计时器或者只开一个计时器轮询队列里的所有数据包。 具体使用哪种方法不是很确定。[/quote] 我觉得使用第一种方式,可是使用一个共用的计时器,每次发数据时启用这个计时器,若超时则丢弃重新加入队列等待发送。
lliiqiang 2014-08-08
  • 打赏
  • 举报
回复
把数据再次封装,一个属性标识类型,另外一个属性直接指向数据.
血饮 2014-08-07
  • 打赏
  • 举报
回复
好高端呀,学习一下!
S117 2014-08-07
  • 打赏
  • 举报
回复
用消息对列发把
stdying 2014-08-07
  • 打赏
  • 举报
回复
引用 5 楼 gaofuqi 的回复:
[quote=引用 4 楼 stdying 的回复:] [quote=引用 2 楼 gaofuqi 的回复:] 你的具体需求是什么? 如果只是单纯的发数据,直接http请求就可以了,在参数里有一个参数是说明消息类型,然后服务端自行判断再处理; 如果需要有重发机制最好放在队列或数组中,里面定义有标明发送次数的属性;
用socket发送,发送完成后如果服务器没有在约定的时间内予以回复,会重发。[/quote] 那就用队列去轮询吧,可以同时记录发送次数,在队列的存活的时间等等来管理这些消息对象。[/quote] 尝试尝试
gaofuqi 2014-08-07
  • 打赏
  • 举报
回复
引用 4 楼 stdying 的回复:
[quote=引用 2 楼 gaofuqi 的回复:] 你的具体需求是什么? 如果只是单纯的发数据,直接http请求就可以了,在参数里有一个参数是说明消息类型,然后服务端自行判断再处理; 如果需要有重发机制最好放在队列或数组中,里面定义有标明发送次数的属性;
用socket发送,发送完成后如果服务器没有在约定的时间内予以回复,会重发。[/quote] 那就用队列去轮询吧,可以同时记录发送次数,在队列的存活的时间等等来管理这些消息对象。
stdying 2014-08-07
  • 打赏
  • 举报
回复
引用 2 楼 gaofuqi 的回复:
你的具体需求是什么? 如果只是单纯的发数据,直接http请求就可以了,在参数里有一个参数是说明消息类型,然后服务端自行判断再处理; 如果需要有重发机制最好放在队列或数组中,里面定义有标明发送次数的属性;
用socket发送,发送完成后如果服务器没有在约定的时间内予以回复,会重发。
stdying 2014-08-07
  • 打赏
  • 举报
回复
引用 1 楼 csucaicai 的回复:
说的可以明确点~!你弄个例子啊,这有点抽象 传递数据,一般是一个函数直接全过去就完事了,我还没遇到过不同格式就咋样的。。。
是没怎么说清楚,起始发送的是字符串,只不过是发送时将相应的class里面信息拼接成String发出去,蛋疼的是还需要确认服务器收到数据。
gaofuqi 2014-08-07
  • 打赏
  • 举报
回复
你的具体需求是什么? 如果只是单纯的发数据,直接http请求就可以了,在参数里有一个参数是说明消息类型,然后服务端自行判断再处理; 如果需要有重发机制最好放在队列或数组中,里面定义有标明发送次数的属性;
csucaicai 2014-08-07
  • 打赏
  • 举报
回复
说的可以明确点~!你弄个例子啊,这有点抽象 传递数据,一般是一个函数直接全过去就完事了,我还没遇到过不同格式就咋样的。。。

62,620

社区成员

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

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