15.9 总结 & 练习

由于篇幅所限,还有其他许多涉及连网的概念没有介绍给大家。Java也为URL提供了相当全面的支持,包括为因特网上不同类型的客户提供协议控制器等等。

除此以外,一种正在逐步流行的技术叫作Servlet Server。它是一种因特网服务器应用,通过Java控制客户请求,而非使用以前那种速度很慢、且相当麻烦的CGI(通用网关接口)协议。这意味着为了在服务器那一端提供服务,我们可以用Java编程,不必使用自己不熟悉的其他语言。由于Java具有优秀的移植能力,所以不必关心具体容纳这个服务器是什么平台。

所有这些以及其他特性都在《Java Network Programming》一书中得到了详细讲述。该书由Elliotte Rusty Harold编著,O'Reilly于1997年出版。
  1. 编译和运行本章中的JabberServer和JabberClient程序。接着编辑一下程序,删去为输入和输出设计的所有缓冲机制,然后再次编译和运行,观察一下结果。
  2. 创建一个服务器,用它请求用户输入密码,然后打开一个文件,并将文件通过网络连接传送出去。创建一个同该服务器连接的客户,为其分配适当的密码,然后捕获和保存文件。在自己的机器上用localhost(通过调用InetAddress.getByName(null)生成本地IP地址127.0.0.1)测试这两个程序。
  3. 修改练习2中的程序,令其用多线程机制对多个客户进行控制。
  4. 修改JabberClient,禁止输出刷新,并观察结果。
  5. 以ShowHTML.java为基础,创建一个程序片,令其成为对自己Web站点的特定部分进行密码保护的大门。
  6. (可能有些难度)创建一对客户/服务器程序,利用数据报(Datagram)将一个文件从一台机器传到另一台(参见本章数据报小节末尾的叙述)。
  7. (可能有些难度)对VLookup.java程序作一番修改,使我们能点击得到的结果名字,然后程序会自动取得那个名字,并把它复制到剪贴板(以便我们方便地粘贴到自己的E-mail)。可能要回过头去研究一下IO数据流的那一章,回忆该如何使用Java 1.1剪贴板。
下一节:在最开始,可将范式想象成一种特别聪明、能够自我适应的手法,它可以解决特定类型的问题。也就是说,它类似一些需要全面认识某个问题的人。在了解了问题的方方面面以后,最后提出一套最通用、最灵活的解决方案。具体问题或许是以前见到并解决过的。然而,从前的方案也许并不是最完善的,大家会看到它如何在一个范式里具体表达出来。