A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wodenhaowzg 中级黑马   /  2014-1-16 13:55  /  1581 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wodenhaowzg 于 2014-1-16 15:39 编辑

UDP发送的数据,到目的端,存放在哪?UDP不是会丢失数据么,那QQ聊天发送的信息会丢失?

5 个回复

倒序浏览
可以指定存放位置吧,控制台或者文件中,IO操作嘛,有网络编程就有IO流操作,QQ那个应该涉及到了内存问题,会有缓存。而且操作的都是小数据不会丢失
回复 使用道具 举报
UDP无连接,属于广播式发送,有接收端就接收,没有也就作废了。qq应该TCP、UDP都有
回复 使用道具 举报
数据的存放肯定跟你自己IO操作有关啊,可以保存在指定位置啊。UDP是面向无连接的,只能保证最大努力交付,网络不好的情况下,可能发生数据的丢失,但是UDP的速度比TCP快。QQ中的语音,视频聊天就是用的UDP协议传输数据。
回复 使用道具 举报
udp虽然是面相无连接的,但是发送前,他也是要确定发送的目标的。
它发送的时候用到socket用到数据包,datagrampacket用来实现无连接数据包的投递服务,每条报文根据该包中包含的信息,(源端口,目的端口,源地址,目的地址)从一台机器路由到另外一台机器。
相对于tcp的面相连接,主要是说,Udp没有三次握手,没有相互确认对方存在的问题,不是说没有发送的具体目地。
udp发送到目的端后,如果接受不了,是直接丢包的。
扣扣其实是udp和Tcp都有,可以发现在同一个楼道或者楼宇里传送大视频等,会有7兆8兆的速度,期间是局域网通信用的udp。
有时候对方不在线,我们发送的东西其实是发送到远程的腾讯服务器上,是tcp。服务器检查你的好友是否长时间未上线,上线,发给他,不上线,时间一长就不保存了。所以会出现丢失消息的情况,并不是tcp丢包了。
回复 使用道具 举报
udp属于小容量发送。,最大支持64kb。数据存在数据包中。
//2.创建数据包


byte[] buf=new byte[1024];

DatagramPacket dP=new DatagramPacket(buf, buf.length);



//使用接受方法,将数据存储到数据包中

ds.receive(dP);//阻塞式的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马