zoukankan      html  css  js  c++  java
  • 从零开始学Java 第19章 网络编程

    第19章  网络编程
    网络应用是Java语言取得成功的领域之一,它已经成为现在Internet上最流行的一种编程语言。Java语言在网络编程方面提供了许多方便,其他语言往往需要数页代码才能完成的事情,在Java中可能只需要一条语句就可以。本节就主要介绍网络编程中要用到的Java类,如InetAddress 、URLs、Sockets、Datagram,在本章的最后,会讲解一个简单聊天室的示例。
    19.1  InetAddress类
    InetAddress是表示网络协议地址的类。可以用于标识网络上的硬件资源,它提供了一系列方法以描述、获取及使用网络资源。InetAddress类没有提供构造函数,因此不能用new来构造一个InetAddress对象。InetAddress对象通常是用它提供的静态方法来获取:
    19.2  URL类
    URL是统一资源定位符(Uniform Resource Locator)的简称,它表示Internet上某一资源的地址。Internet上的资源包括HTML文件、图象文件、声音文件、动画文件以及其他任何内容(并不完全是文件,也可以是一个对数据库的查询等)。
    通过URL,就可以访问Internet。浏览器或其他程序通过解析给定的URL就可以在网络上查找相应的文件或其他资源。一个URL包括两部分内容:协议名称和资源名称,中间用冒号隔开:
    协议名:资源名称

    19.3  Socket通信
    在Java中,基于TCP协议实现网络通信的类有两个:Socket类和ServerSocket类。在客户端的是Socket类和在服务器端的ServerSocket类。使用它们可以方便的完成信息的交互,也可以完成服务器端与客户端的连接,由服务器端向客户端提供服务。
    19.3.1  socket类
    建立连接的过程是这样的:首先在服务器端指定一个用来等待的连接的端口创建一个ServerSocket实例。然后在客户端通过规定一个主机和端口号创建一个Socket实例,连到服务器上。ServerSocket类的accept方法使服务器处于阻塞状态,等待用户请求。

    19.3.2  ServerSocket类
    在服务器端使用的是ServerSocket,主要用于接收客户端传送来的对象。该类的主要构造函数如下:
    public ServerSocket(int port):创建绑定到特定端口的服务器套接字。
    public ServerSocket(int port,int backlog):利用指定的backlog创建服务器套接字并将其绑定到指定的本地端口号。端口号0在所有空闲端口上创建套接字。输入连接指示(对连接的请求)最大队列长度被设置为backlog。
    public ServerSocket(int port,int backlog,InetAddress bindAddr):使用指定的端口、侦听backlog和要绑定到的本地IP地址创建服务器。端口必须在0到65535之间。
    public Socket accept():侦听并接受到连接此套接字的连接。此方法在进行连接之前一直阻塞。
    public void close():关闭服务器套接字。
    public void bind(SocketAddress addr):将ServerSocket绑定到指定的地址,IP地址和端口号都被封装在addr中。
    19.3.3  Socket通信过程
    无论一个Socket通信程序的功能多么齐全、程序多么复杂,其基本结构都是一样的。基本过程都包括以下四个基本步骤:
    (1)在客户方和服务器方创建Socket/ServerSocket实例。
    (2)打开连接到Socket的输入/输出流。
    (3)利用输入/输出流,按照一定的协议对Socket进行读/写操作。
    (4)关闭输入/输出流和Socket。

    19.4  简单的聊天室程序
    本小节主要介绍一个简单的聊天室程序。该程序分为客户端和服务器端。服务器端可以接受多个连接,客户端可以连接服务器。客户端发送消息给服务器端,服务器接受消息,转发给所有客户。本程序实现了聊天室的基本功能。
    19.4.1  服务器端
    首先服务器监听客户端连接,当有用户连接时建立一个线程与之交互。此外,服务器端还要负责转发消息,接受某客户端输入然后转给各个客户端。
    19.4.2  客户端
    客户端首先是要求用户输入一个用户名,然后与服务器建立连接并产生一个窗体。在窗体中,用户可以发送消息,窗体有相应的事件处理机制。此外窗体中有一个文本区负责显示接受到的其他用户发送的消息。
    19.5  小结
    在Java中,由于Java提供了丰富的开发包,使用它们来构建网络程序是非常简单的。本章主要介绍了如何使用这些类来构建简单的网络程序。正因为提供了如此的便利性,Java才会如此流行,它为分布式编程提供了便利的基础条件。通过本章的学习,读者可以对Java的网络编程有一个整体上的认识,结合其它章节可以写出实用的网络程序。

  • 相关阅读:
    photoshop快捷键汇总
    div和css:行内元素和块元素的水平和垂直居中
    使块元素并排显示和清除浮动的方法
    javascript与DOM节点的结合使用
    导航+轮播图(手动)
    执行计划
    oracle存储过程
    oracle 常用语法
    Sqlserver数据库总结
    sqlserver sum 和count在关于进行统计时的区别
  • 原文地址:https://www.cnblogs.com/yoogoo/p/2467287.html
Copyright © 2011-2022 走看看