请教一个JAVA UDP程序问题。我编了一个UDP通信程序,实现客户端向服务器端发送信息。

疑问:如果我先运行客户端的程序,向服务器端发送一些信息,然后才运行服务器端的程序,那么服务器会收不到客户端之前发送的信息。相反,如果我先运行服务器端的程序,再运行客户端程... 疑问:如果我先运行客户端的程序,向服务器端发送一些信息,然后才运行服务器端的程序,那么服务器会收不到客户端之前发送的信息。相反,如果我先运行服务器端的程序,再运行客户端程序向服务器端发送信息,那么服务器端就可以收到客户端发送的信息。为什么会这样呢?
我的想法:UDP应该是不同于Socket通信的,UDP是不需要实时连接的,那么在服务器端程序运行之前客户端所发送的信息,在服务器端程序运行之后服务器端应该会收到的。但是为什么会收不到呢?
展开
 我来答
jz200
2011-12-26 · 超过19用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:57.7万
展开全部
正如你所说,UDP不需要实时连接,客户端只负责发送,不保证成功,服务端也只接收正确到达的数据包,你没有起服务端之前的客户端所发送的UDP数据包都属于丢包,就像我们玩一些网游,如果网络不好,会出现一卡一卡的,本来在这下一秒突然移动到另一个地方,中间移动的过程没有出现,这就属于丢包了。
心中时S
2011-12-26 · TA获得超过1051个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:270万
展开全部
UDP是不需要实时连接的 这一观点是错误的。你UDP数据包到达服务器主机后因为没有程序准备处理它从而丢失了,不存在服务器主机为你保存数据包这种情况。
更多追问追答
追问
比如QQ通信,假如我作为客户端,向一个作为服务器端的好友发送信息。如果好友不在线,相当于服务器端没有程序准备处理,按你所说,我发送的信息即使在好友上线后也不会被收到,这和现实不相符。不知道我说得对不对。请指教!
追答
你错了,qq通信方式是不同的。
qq是以下工作原理:
qq先有一个一直在线的服务器,你登录qq时,服务器会发给你的在线好友的ip地址,但是对于不在线的好友并没有相应的ip地址。你如果向离线好友发出消息,qq服务器会将你的消息保存在本地,等好友上线的时候再将消息发给好友。
以上所说的qq服务器一直处于在线状态。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杰出又安逸的夜鹰7319
2011-12-26 · TA获得超过6万个赞
知道大有可为答主
回答量:4.7万
采纳率:0%
帮助的人:3380万
展开全部
论一个玩劲舞的少女,前几天晚自习回家,被一辆卡车给撞死了,司机丧尽天良,把她的尸体拖进猪球场旁的小巷内奸污,随即逃跑.你看到这条消息后,请将它转发到3个百度贴吧,如果没发,你妈妈会在1个月后被汽车撞死,你爸爸会在1年后得绝症凄惨而亡,以后你的孩子一出生就是怪胎! 如果照上面的做了,全家平安,5天后,你喜欢的人会来找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式