如何在Java中利用数据包求答案

 我来答
纪念我们v2
2013-10-09 · TA获得超过100个赞
知道答主
回答量:109
采纳率:0%
帮助的人:136万
展开全部
尽管很多程序员不熟悉这个协议,因为对于程序来说它太难了,对于TCP来说它的使用的频率太低。但是,这个协议是非常值得我们去学习的,因为当你在没有创建TCP连接的时候,假如要在各程序之间以消息的形式改变数据,利用UDP是最适合的。当这个消息很短并且你不需要传统上的连接的时候,UDP将是最理想的协议。UDP的基本形式
UDP以数据包的形式发送和接收数据。它和TCP不同的是,它没有连接的概念,每个数据包是单独的发送,并且没有发送的担保。当几个数据包被发送到相同的位置的时候,它们可以采用不同的顺序。假如你需要发送担保和分类担保,他们就必须有程序执行UDP的最高协议,这个协议在UDP的认证包,超时和中继,顺序包等等。或者你应该考虑使用TCP来代替。和TCP一样,为了发送和接收数据包,你需要一个适当的网络插口,所以要java.net.DatagraSocket 类。和TCP不同的是,客户插口和服务器插口没有区别,那就是说,一个DatagramSocket可以在任何时候发送和接收数据。DatagramSocket虽然很方便,但是它的使用和机器的地址和端有关,这些取决于这个机器自己的构造器。这个关联决定了地址的来源和包传送的插口所在的端口,并且这个地址和插口的端口在接收数据时随时候命。假如使用的电脑有多个ip地址,你可以将插口变为一个专用地址或者是通配符地址,专用地址是指电脑上所有的IP地址。在这种情况下插口会监听所有的即将到来的数据包,但是输出的数据包地址将由分界面决定,就是有连接电脑的路由器决定。发送和接收数据
被发送或者接收数据是有java.net.DatagramPacket 类来决定的。假如你要发送数据包,你必须使用DatagramPacket包,设置你想发送包去的方位的端口和IP地址,并设置好数据的缓冲器。在返回的时候, DatagramPacket的数据缓冲器将作为一个参数通过,这个参数把握了所有接收的数据。假如这个数据的大小大于缓冲器的大小,将把多余的字节删除,DatagramPacke同样将包含发送者的地址和端口。连接远端端口
UDP的一个确定就是你必须在每个包上指定目的地的地址和端口。另外UDP插口会从任何主机上接收包,这样使你无法控制所接受的数据。但是,DatagramPacket类提供了远程主机创建连接的概念,远程主机单一化的执行决定于UDP。这个单一的特点由DatagramSocket.connect()来执行,它用来连接插口到远程主机。注重到连接通过过滤包裹发送和接收,那就是说,它并没有和远程主机建立一个真正的连接,所以,这个方法不象TCP,它自己不会发送任何数据包,也永远不会接受数据失败。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式