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