java语言的网络功能与编程
八、Java网络能力的限制
出于安全性考虑,在用netscape浏览时,Java Applet 只能和其所在的主机建立连接,因此,前面的程序编译后大部分只能存放在http://www.shu.edu.cn/~xyx对应的主机上。存放到其他主机时需更改程序中的结点地址。否则浏览器将显示安全出错。
但对显示网络上其他HTML文档没有此限制(如程序8、9),读者可以将程序编译后放到任意WWW服务器或FTP服务器,均可正常运行。
此外,当浏览器从本地盘打开调用Java Applet的HTML文档时,也不受此限制。因此,本文所有的程序都可存放在本地盘编译,只要用netscape的File/Open File菜单打开,便可正确运行。
对于另一种Java程序--Java Application,也无此限制,例如对于读取网络上文件内容的程序10,对应的Java Application可作如下编程:
●程序11
import java.io.*;
import java.net.*;
import java.awt.*;
class showfile2 {
public static void main(String args[]){
InputStream filecon = null;
DataInputStream filedata = null;
String fileline;
String url = "http://www.shu.edu.cn/~xyx/doc/manhua.html";
URL fileur;
try {
fileur = new URL(url);
filecon = fileur.openStream();
filedata = new DataInputStream(filecon);
while ((fileline = filedata.readLine()) != null) {
System.out.println(fileline+"\n");
}
}
catch (IOException e) {
System.out.println("Error in I/O:" + e.getMessage());
}
}
}
将其以showfile2.java存盘,用javac showfile2.java编译后,只需执行“java showfile2”便可以在屏幕上打印出http://www.shu.edu.cn/~xyx/doc/manhua.html 文件的内容。
九、创建URL对象的方法
在前面的例子中我们统一使用new URL(url字符串)的形式创建URL对象。其实,Java提供了四种创建URL对象的形式:
1.new URL(url字符串) 本文中的程序均采用此种格式,如:
new URL("http://www.shu.edu.cn/~xyx/doc/manhua.html")
2.new URL(协议,主机名,文件名或路径) 如程序2中的
String url = "http://www.shu.edu.cn/~xyx/img/shnet.jpg";
image = getImage(new URL(url));部分可改为:
image = getImage(new URL("http","www.shu.edu.cn","/~xyx /img/shnet.jpg"));
3.new URL(协议,主机名,端口号,文件名或路径)1
如:new URL("http","www.shu.edu.cn",80, "/~xyx/doc/manhua.html")
4.new URL(基准url,文件名或路径)
十、实现网络功能的其他方法
以上着重介绍了利用Java的URL类实现从网络上获取声音、 图象、HTML文档及文件数据的编程方法。Java的网络功能很强大,除上面介绍的外,还可以利用URLconnection 类实现更广泛的网络功能,如向WWW 服务器上的 CGI 程序发送信息等; 通过 Socket 及ServerSocket类,可以自己编写客户软件及服务软件,并可以自己设计通讯协议。




文章评论
共有 0 位网友发表了评论 查看完整内容