首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 图形图象-> CORELDRAW教程
Java数据报编程之概说-JSP教程,Java技巧及代码
作者:网友供稿 点击:28
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
 

一般说明

在tcp/ip协议族中,udp和tcp同样位于传输层,用户数据报是udp协议中的概念.

udp协议提供面向事务的简单不可靠信息传送服务,它不提供对 ip 协议的可靠机制、流控制以及错误恢复功能.

udp 协议基本上是ip 协议与上层协议的接口,从整个用户数据在各层的包装看,udp报文格式相当简单:

16 32bit
source port源端口 destination port目标端口
length 报文长度(单位是字节,包括首部和用户数据区) checksum(校验和)
data


由于校验和的原因,udp还引入了伪首部,这导致了udp和ip层的关系过于密切,破坏了分层原则.

java数据报支持

包java.net中提供了两个类datagramsocket和datagrampacket用来支持数据报通信,datagramsocket用于在程序之间建立传送数据报的通信连接, datagrampacket则用来表示一个数据报。

datagramsocket代表发送和接收数据报的套接字,一个数据报套接字是为包递送服务的发送和接收点,在一个数据报套接字上,每个被发送和接收的包都被独立的寻址和路由,从一台机器到另一台机器上发送的多个包有不同的路由,任意的抵达顺序.

对于datagramsocket,udp广播发送总是使能的(那是缺省设置).为了接收广播包这个类实例应该绑定到通用地址(wildcard address).在某些实现中,当被绑定到更多特定地址上的时候广播包也可以接收.

例如:

datagramsocket s = new datagramsocket(null);
s.bind(new inetsocketaddress(8888));
这等同于:
datagramsocket s = new datagramsocket(8888); 
两种情况都会创建一个能在端口8888上接收广播的datagramsocket实例.

constructor summary
  datagramsocket()
          constructs a datagram socket and binds it to any available port on the local host machine.
protected datagramsocket(datagramsocketimpl impl)
          creates an unbound datagram socket with the specified datagramsocketimpl.
  datagramsocket(int port)
          constructs a datagram socket and binds it to the specified port on the local host machine.
  datagramsocket(int port, inetaddress laddr)
          creates a datagram socket, bound to the specified local address.
  datagramsocket(socketaddress bindaddr)
          creates a datagram socket, bound to the specified local socket address.
 

其中,port指明socket所使用的端口号,如果未指明端口号,则把socket连接到本地主机上一个可用的端口。laddr指明一个可用的本地地址。给出端口号时要保证不发生端口冲突,否则会生成socketexception类例外。

用数据报方式编写通信程序时,通信双方,首先都要建立一个datagramsocket对象,用来接收或发送数据报,然后使用datagrampacket类对象作为传输数据的载体。下面看一下datagrampacket的构造方法 :

constructor summary
datagrampacket(byte[] buf, int length)
          constructs a datagrampacket for receiving packets of length length.
datagrampacket(byte[] buf, int length, inetaddress address, int port)
          constructs a datagram packet for sending packets of length length to the specified port number on the specified host.
datagrampacket(byte[] buf, int offset, int length)
          constructs a datagrampacket for receiving packets of length length, specifying an offset into the buffer.
datagrampacket(byte[] buf, int offset, int length, inetaddress address, int port)
          constructs a datagram packet for sending packets of length length with offset ioffsetto the specified port number on the specified host.
datagrampacket(byte[] buf, int offset, int length, socketaddress address)
          constructs a datagram packet for sending packets of length length with offset ioffsetto the specified port number on the specified host.
datagrampacket(byte[] buf, int length, socketaddress address)
          constructs a datagram packet for sending packets of length length to the specified port number on the specified host.

可以看出,有两个供接收的构造器和四个供发送的构造器.其中,buf中存放数据报数据,length为数据报中数据的长度,address和port旨明目的地址,offset指明了数据报的位移量。

java组播支持

multicastsocket 多播数据报套接字。这个组播套接字对于收发ip多播数据包是很有用的,它扩展了datagramsocket,在其上附加了加入internet上多播组的方法。一个多播组由d类ip地址和标准udp端口指定,d类ip范围是224.0.0.0 to 239.255.255.255,其中224.0.0.0被保留不为它用。

它有三个构造器:

constructor summary
multicastsocket()
          create a multicast socket.
multicastsocket(int port)
          create a multicast socket and bind it to a specific port.
multicastsocket(socketaddress bindaddr)
          create a multicastsocket bound to the specified socket address.
 

基本上,没有指定端口,只为发送,指定端口可收发,多址主机会用套接字地址。



文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·使用Winsock控件,实现网络点对点通信-.NET教程,组件控件开发
·用正则表达式来校验数据的合法性-ASP教程,正则表达式
·java中实现IP地址的各种表现形式之间的转换-JSP教程,Java技巧及代码
·tomcat 中 /servlet url 映射-JSP教程,Jsp/Servlet
·coreldraw文字排版实战技巧
·javascript控制页面控件隐藏显示的两种方法-ASP教程,组件开发
·IIS的一个莫名错误Server Application Unavailable-ASP教程,ASP技巧
·什么是LDAP-PHP教程,PHP应用
·ibm联想将笔记本外包给quanta与wistron
·coreldraw版面设计教程
最新文章
·google关键词广告创建的十二高招_网赚技巧
·个人站长怎么样在短期内赚钱_网赚技巧
·颠峰对决:google adsense和百度主题推广_网赚技巧
·网站定位方法汇总篇_站长心得
·b2b网站探索合作新模式_站长心得
·分析一下网站赚不到钱的四大原因_站长心得
·什么是wiki?_站长心得
·留住访客 如何最优化设计网站的首页?(3)_站长心得
·google开始可以抓取框架内容_google推广
·google pagerank 技术解密 2_google推广
相关主题
  • Java数据报编程之广播-JSP教程,数据库相关
  • Java数据报编程之单播-JSP教程,数据库相关
  • Java数据报编程之组播-JSP教程,Java技巧及代码
  • Java数据报之失序和丢包-JSP教程,Java技巧及代码
  • Java数据报编程之测试程序-JSP教程,Java技巧及代码
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭