河南理工大学本科生毕业设计(论文)说明书
⑤.数据类型的支持:在Java中,对于这些数据类型总是分配固定长度的位数,如对int型,它总占32位,这就保证了Java的平台无关性。
2.1.3 JAVA语言在网络上的应用
Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用Java中相应的方法(method)获取该对象所代表的资源。下面列举一个Java从网络上获取图象的的方法以说明。
Java Applet可以直接从网络上结点获取图象并显示出来,Java提供了如下方法可以创建对应于其他结点的图象:
getImage(new URL(字符串)) 其使用格式可有两种:
String url = “结点URL”; Image image; try {
image = getImage(new URL(url));
}
catch(Exception e){
System.out.println(“Can’t open the URL “); } 或
URL imgur=null; Image image; try {
imgur=new URL(“结点URL “); }
catch (MalformedURLException e) {
System.out.println(“Can’t open the URL “); }
6
河南理工大学本科生毕业设计(论文)说明书
image=getImage(imgur);
前一种格式用“new URL(url)”生成 URL 对象, 并直接作为getImage的参数,后一种格式先用“new URL(url)”生成一个 URL对象,再传给getImage,两种格式本质上是一样。
以上仅是Java在客户端应用的一些方面,目前,Java更广泛的应用是在服务器端。
2.2 数据报通信常识
虽然TCP协议提供了有序的、可预测和可靠的信息包数据流,但是这样做的代价也很大,TCP包含很多在拥挤的网络中处理拥塞控制的复杂算法以及信息丢失的预测,这导致了这样传输数据的方式效率很差。因此,数据报通信方式是一种可选的替换方法。
数据报通信协议UDP(Unreiable Datagram Protocol)是一种非面向连接的提供不可靠的数据包式的数据传输协议,类似于从邮局发送信件的过程,信件只要放到邮箱就算完成任务。这说明了一旦数据报被释放给它们预定的目标,不保证他们一定到达目的地,甚至不保证一定存在数据的接收者。同样,数据报被接受时,不保证它在传输过程不受损坏,不保证发送它的机器仍在等待响应。此外,数据报传输有大小限制,每个传输的数据包必须限定在64KB之内。
Java通过DatagramPacket和DatagramSocket两个类实现UDP协议顶层的数据报。DatagramPacket生成的对象表示一个数据报,而DatagramSocket是用来发送和接受数据包的类。
对于DatagramPacket的内部状态,可以用如下方法获得。这些方法对数据包的目标地址和端口号以及原始数据和数据长度有完全的使用权。 DatagrameSocket类用来发送和接受数据包。因此,在用数据报方式编写客户端/服务器端程序时,无论是在客户端还是服务器端,首先需要建
7
河南理工大学本科生毕业设计(论文)说明书
立DatagrameSocket对象,用来接收或发送数据报,然后使用DatagramPacket类对象作为传输数据的载体。
通常,DatagramSocket接受数据报要用receive(DatagramPacket p)方法,而发送数据报则使用send(DatagramPacket p)方法,这两个方法是DatagramPacket十分常用的方法。
要发送一个数据报,首先创建一个DatagramPacket,指定要发送的数据、数据的长度、数据要发送至哪个主机和要发送该主机的哪个端口,然后再用DatagramSocket的send()方法发送数据包:要接收一个数据报,首先必须创建一个在本地主机的特定端口上侦听的DatagramSocket,此套接字只能接收发送至特定端口上的数据包。
2.3 URL与URLConnection
URL的全称是Unitform Resourse Locator,意思是统一资源定位器,表示的是Internet上某一资源的地址,通过URL可以访问Internet上主机所开放的资源。URL由协议名和资源名组成,中间用“:”分隔。
Java中的URL类中有许多构造函数,这些构造函数会抛出MalformedURLException非运行是异常,在生成URL对象时必须进行异常处理。URLConnection是一个抽象类,代表与URL指定数据源动态连接,URLCon- nection类提供比URL类更强的服务器交互控制。如果你建立了与远程服务器之间的连接,你可以在传输它到本地之前用URLConnection来检查远程对象的属性。这些属性为HTTP协议的规范定义,并且仅对用HTTP协议的URL对象有意义。同时,它允许用POST或PUP和其他HTTP请求方法将数据送回服务器。在java.net包中只有抽象的URLConnection类,其中的许多方法和字段与单个构造函数一样是受保护的,这些方法只可以被URLConnection类及其子类访问。
当创建URLConnection对象后,我们可以使用URLConnection对象
8
河南理工大学本科生毕业设计(论文)说明书
的操作方法。如果URL类的构造函数的参数有问题,比如字符内容不符合URL位置表示法的规定、指定的传输协议不是Java所能接受时,那么构造函数就会抛出Mal- formedURLException异常,所以一定要用try和catch语句处理。
URLURL与URLConnection也是比较常用的两个类,它们主要用于访问Int- ernet上的运用资源。
2.4 套接字通信
Socket,简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。
具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中,客户端被分配一个本地端口与一个socket建立连接,客户端通过写socket来通知服务器,以读socket中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。服务器也通过它的本地端口连接一个socket,通过读写和客户端通信。
Socket程序的工作过程:
(1)建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接通道。
(2)数据通信:利用虚拟连接通道传送数据信息进行通道。 (3)关闭:通信结束时,再将所建的虚拟连接拆除。
具体如下:
9
河南理工大学本科生毕业设计(论文)说明书
1服务器
4接收 5读 6写 7关闭 7关闭 6 写 5 读 2监听 3客户端socketsocket 图2-1 Socket程序的工作过程
三次握手的内容:
第一次握手:原主机发送一个带有本次连接的序号的请求的一个数据帧;
第二次握手:目的主机收到请求后,如果同意连接,则发回一个带有一个本次连接序号和源端机连接序列号的确认;
第三此握手:源端机收到含有两次初始序列号的应答后,在向目的主机发送一个带有两次连接的序列号的确认。
具体过程如下:
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java聊天室毕业论文(3)在线全文阅读。
相关推荐: