辣.体系结构中立
为使JAVA程序能在网络的任何地方运行,JAVA解释器生成与体系结构无关的字节码结构的文件格式,他们能在任何种类的处理器上运行,只需提供相应的JAVA运行系统.这样,实现了一次编写到处运行。
七.可移植性
体系结构中立使得JAVA程序具有可移植性。同时JAVA的类库也具有可移植性,可以在不同的平台上使用。另外,JAVA的编译器由JAVA语言实现,运行器由标准C实现,因此JAVA本身也具有可移植性。
八.可解释执行
JAVA解释器直接对JAVA字节码解释执行,字节码本身包含了许多编译时产生的信息,使连接过程变的更加简单。
九. 多线程
多线程使应用程序可以同时进行不同的操作,处理不同的事件。网络连接需要时间,如果采用事件循环机制则会造成长时间的等待。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,这样可以容易地实现网络上的实时交互操作。
十.动态性
在许多方面,JAVA比C,C++更具有动态性,它被设计为适用于不断发展的环境。在类库中可以自由地加入新的方法或变量,而不会影响使用这一类库的应用程序的执行。
3.1.3 JAVA的SOCKET通信
JAVA语言本身具备了独具特色的网络优势与网络功能。
JAVA的SOCKET通信提供了一种可靠的基于连接的通信机制,所谓SOCKET可以设想成是两个不同的程序通过网络的通信管道,这也是网络程序最常用的方式。为了利用SOCKET通信,必须先打开通讯连接,其实质上就是建立一个新的SOCKET实例:Socket object_socket = new Socket(hostname,portnum)。JAVA的所有的输入/输出操作都是采用流来实现的。在建立SOCKET连接后,可以用SOCKET对象的getInputStream()和getOutputStream()方法分别取得其输入流和输出流,对输入流再用DataInputStream流进行过滤处理,对输出流则常用PrintStream 流或DataOutputStream 流过滤,进而可用更高级的方法进行数据的读写,如DataInputStream流的readLine() 方法可以从流中读取一行字符串,PrintStream流的Println() 方法可以往流中写入一行字符串。
JAVA为我们提供了客户端的SOCKET类和服务器端的SERVERSOCKET类,它们的工作方式类似,在使用同一个端口号(PORTMUN)建立连接后,就可以使用以上提供的方法进行通信了。在SERVERSOCKET类中,我们使用accept( )方法从客户端接收连接。
无论一个SOCKET通信的功能多么齐全,程序多么复杂,其基本结构都是一样的,都包括以下四个基本的步骤:
1. 打开SOCKET;
2. 打开连接到SOCKET的输入/输出流;
3. 按照一定的协议对SOCKET进行读/写操作;
4. 关闭SOCKET。
通常,程序员主要是针对所要完成的功能在第3步进行编程,第1、2、4步对任何程序几乎都是一样的。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>