浅谈Java程序设计的网络编程

来源 :消费电子 | 被引量 : 0次 | 上传用户:haha300n
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:网络编程技术是现在比较流行的软件研发技术,广泛应用于如斗地主,五步棋等游戏以及即时通讯之中。本文介绍在Java语言中如何进行TCP和UDP格式的网络编程,通过简单的实例演示网络编程的基本方法,旨在对网络编程爱好者起到抛砖引玉的作用。
  关键词:数据包;TCP协议;UDP协议
  中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2012) 10-0098-01
  计算机网络是计算机技术和通信技术紧密结合的产物,对如今社会发展有着深远的影响。网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要问题:一个是如何准确地定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效地进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。
  一、TCP和UDP协议
  TCP和UDP协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS、SNMP、DNS、TFTP等。
  二、网络通信中Java的网络类和接口
  Java中有关网络方面的功能都定义在java.net程序包中。Java所提供的网络功能可大致分为三大类:
  (一)URL和URLConnection:使用Socket类进行网络编程相当麻烦。对已经存在的协议,程序员应当了解它的每一段代表的含义,改而使用URL类可以很大程度上免去这些麻烦。
  1.URL类
  URL是类URL表示统一资源定位器,即指向网上某处资源的指针。一个URL包括协议名和主机名,有些还包括特定的端口号。
  2.URLConnection类
  通过URL的方法openStream(),只能从网络上读取数据,如果同时还想输出数据,例如向服务器的CGI程序发送一些数据,则必须先与URL建立连接,然后才能对其进行读写,这时就要用到URLConnection类了。CGI是公共网关接口的简称,它是用户浏览器和服务器端的应用程序进行连接的接口。
  URLConnection类可以由两种方式构建:一种是通过一个URL实例openConnection()方法返回一个,另一种是直接通过new URLConnection(URL ul)来创建。URLConnection实例不仅可以实现接收消息,还可以发送消息。
  (二)Socket:又称套接字,是网络编程中最原始的通信方式之一。一个套接字通常包含一个IP地址和一个端口地址,后者一般对应着某个应用程序。因此如果要进行Socket编程,首先要确定端口。一般来说,1024以下的端口已经被指定为固定的服务类型,如果用户要开发自己的交流平台,必须使用之后的端口地址。
  套接字(Socket)允许程序把网络连接当成一个流,可以向这个流写字节,也可以从这个流读取字节。Java的Socket类提供了丰富的功能。服务器使用的一般是ServerSocket,通过连接使双方都会产生一个实例,对实例进行操作来实现通信。大部分工作都是在抽象类SocketImpl中定义的。
  任何一个网络程序都离不开连接的建立、读写操作、关闭,程序还分为客户和服务器两种类型。除了关闭操作可以简单地使用Close()方法外,读写操作都不是一句话说得完的。
  (三)Datagram:是一种面向无连接的通信方法。它基于UDP协议,不需要建立和释放连接,每次通信时只要构造一个DatagramPacket实例发送出去,对方同样构造一个DatagramPacket实例接收。以Datagram方式传送数据时,只是把数据的目的地记录在数据包中,然后就直接放在网络上进行传输,系统不保证数据一定能够安全送到,也不能确定什么时候可以送到。
  三、Java实现加密
  Java的网络功能十分强大,还体现在作用它可以轻松实现各种加密算法。如今加密算法大致可分为两类:对称加密和公钥加密。
  对称加密,发送方和接收方使用同样的密钥,前者用它来加密,后者则用它解密。这样做本来是很安全的,例如3DES的密钥为112位,这样的组合数大约是5×1033,几乎不可能被攻破。但是密钥总要在双方交换,因此交换途径的保密性就很关键,使用人工固然安全却麻烦,在网络上传输虽方便但危险。故如今网络上大多使用公钥加密方式。
  公钥加密的优点在于,加密和解密的密钥是不同的,前者称为公钥,后者称为私钥。公钥,顾名思义,是可以公开的,一台电脑里可能存放了很多远程通讯方提供的公钥。
  公钥解密还可以用在数字签名上,这时的动作是相反的:用私钥加密,和用公钥解密。Java里用于实现这方面功能的是java.security软件包。
  综上所述,Java网络编程主要基于TCP协议和UDP协议,TCP协议提供高可靠性服务,适用于一次要传输交换大量报文的情况,信道上传递的包不需要源地址和目的地址,UDP协议提供高效率服务,适用于依次传输交换少量报文的情形,每个数据包含目的的地址和端口号,Java支持网络通信的类在java.net包中。
  参考文献:
  [1]印旻.Java语言与面向对象程序设计[M].北京:清华大学出版社,2007
  [2]朱福喜.Java语言程序设计[M].北京:清华大学出版社,2007
  [3]李明才.Java语言程序设计案例教程[M].北京:中国水利水电出版社,2010,8
  [4]张渝.Java语言程序设计[M].北京:北京大学出版社,2008
  [5]张小波.Java程序设计教程[M].北京:冶金工业出版社,2006
其他文献
手机已经成为人们日常生活中不可缺少的工具之一。近年来,特别是Android系统的迅速崛起,改变了整个智能手机的市场格局。得益于Android系统的开放性以及Google联盟的推力,智
核电维修,是核电机组安全稳定高效运行的重要工作之一,"重安全、保质量、有计划、强管理"被确定为核电维修工作的指导方针。多年来,中核核电运行管理有限公司形成在意识上重视
生命权是所有权利的起点,侵权致人死亡的赔偿是保护生命权的核心内容。因侵权行为致人死亡而产生的赔偿请求权理应由死者近亲属享有。死者死亡之后,其近亲属的未来可得利益减少
摘要:本文对中职电子技术应用专业课程的教学流程进行分析研究,探索有效的创新途径,对于专业理论课程的教学流程适于采用建构主义教学模式,对于专业技能课程的教学流程适于采用项目教学法。  关键词:中职;电子技术应用专业;教学流程;创新途径  中图分类号:G354 文献标识码:A 文章编号:1674-7712 (2012) 14-0129-02  近几年来,随着电子技术产业的迅猛发展,电子企业对技术工
2011年IT业界里最热的关键词莫过于“平板电脑”。2010年iPad的诞生,全新的操作体验和丰富的应用程序征服了每一位消费者,让人们对这种略大于巴掌的玩意儿的热情远超于以往任何
递加法是体育教学中重要的教学方法之一,这种方法最大的特点是强调动作连续性,追求动作的逐步提高,对于初学者新动作的学习具有良好的效果,下面本文探讨递加法在太极拳教学中的有
在新媒体时代,众多信息传播和沟通方式的兴起,对检察机关开展群众路线教育活动和增强社会沟通能力提出新的要求.由于新媒体形式多样化,增加了检察机关工作的难度,也因其形式
随着社会的发展,对煤炭的需求也越来越多,相应的带来的污染问题也越来越严重,煤炭的洗选变得十分的重要,现阶段我国的洗选技术已是世界领先水平,但和许多发达国家还有一定差距,本文
巨晓林班组隶属中铁电气化局集团第一工程有限公司,成立于2006年3月。该班组先后参建了大秦Ⅱ期电气化改造、丰准线、北同蒲线、鹰厦线、京郑线、北京西站、哈大、京秦、秦沈