zoukankan      html  css  js  c++  java
  • Java基础知识笔记(六:网络程序设计)

    一、统一资源定位地址(URL

    (1)网络地址

      在网络上,计算机是通过网络地址标识。网络地址通常有两种表示方法,第一种表示方法通常采用4个整数组成,例如:

    166.111.4.100表示某一网站服务器的主页地址。

      第二种方法是通过域名表示网络地址,例如:

    www.aaaa.edu.cn表示某一学校的网站域名。

      在网络程序中,可以用类java.net.InetAddress的实例对象来记录网络地址,并获取一些相关的信息。因为类java.net.InetAddress的构造方法的访问属性是默认模式,所以通常不能通过类java.net.InetAddress的构造方法来创建其实例对象。要创建leijava.net.InetAddress的实例对象可以通过它的成员方法:

    public static InetAddress getLocalHost() throws UnknowHostException创建本地计算机所对应的类java.net.InetAddress的实例对象。

        

    2)统一资源定位地址

      统一资源定位地址(Uniform Resource Locator,URL),在有些资料中也称作网络资源定位器,它一般指向网络上的资源。网络资源不仅可以包括网络上各种简单对象,例如,网络上的路径和文件等,还可以是一些复杂的对象,如数据库或搜索引擎。统一资源定位地址(URL)通常是由若干个部分组成,其中,常用的有协议(Protocol)、主机(Host)、端口号(Port)、文件(File)和引用(Reference)等。这几个部分在统一资源定位地址(URL)中的书写格式及排列顺序通常为:

    协议://主机:端口号/文件#引用

    例如:http://www.aaaa.edu.cn:8080/demo/urlprie.html#INSTALL,其中网络协议为http,主机为www.aaaa.edu.cn,端口号为8080,文件为demo/urlprie.html,引用为INSTALL

     

    3)通过统一资源定位地址获取网络资源

      统一资源定位地址(URL)指向在网络上的资源。通过类java.net.URL的成员方法

    Public final InputStream openStream() throws IOException,可以将类URL的实例对象与它所指向的资源建立起关联,从而可以将该网络资源当作一种特殊的数据流。常用的读取网络资源数据的步骤如下:

    1)创建类URL的实例对象,使其指向给定的网络资源;

    2)通过类URL的成员方法openStream建立起URL连接,并返回输入流对象的引用,以便读取数据;

    3)可选步骤,通过java.io.BufferedInputStreamjava.io.BufferedReader封装输入流;

    4)读取数据,并进行数据处理;

    5)关闭数据流。

        其中步骤3)是可选步骤,当网络不稳定或者速度很慢时,通过步骤3)可以提高获取网络资源数据的速度。

     

     

    二、基于TCP的网络程序设计

        TCPTransmission Control Protocol,传输控制协议)是一种基于连接的协议,可以在计算机之间提供可靠的数据传输。一个形象的比喻是将通过TCP传输数据比作打电话,即先建立起链接通道,再传输数据。连接通道的两端通常称为套接字(Socket)。套接字(Socket)就好像是在打电话时所需要的电话筒。在拨通电话后,可以通过电话筒向对方说话,也可以听到对方所说的话。基于TCP的网络通信也是如此,先建立起连接,再通过套接字(Socket)发送数据和接收数据。

    通过TCP进行通信的双方通常称为服务器端和客户端。服务器端和客户端可以是两台不同的额计算机,也可以是同一台计算机。服务器端的程序与客户端的程序稍微有些不同,具体的通信程序设计如下图所示:

     

    三、基于UDP的网络程序设计

        UDP(User Datagram Protocol,用户数据报协议)是一种控制网络数据传输的协议。传输的数据首先封装在数据报包中,然后通过UDP控制数据报包的发送和接收。与TCP相比,UDP在控制数据传输时并没有建立起可靠的连接。通常将基于UDP的数据传输比喻为到邮局寄信或取信件。相对于TCP而言,一般认为UDP是一种简单的不可靠的无连接的网络数据传输协议。基于UDP的网络数据传输并不保证数据报包会顺利到达指定的主机,也不保证数据报包会按照发送的顺序到达指定的主机。

    在日常生活中,可以通过邮局寄信或取信。与此相类似,基于UDP的网络数据传输要通过数据报套接字(Datagram Socket)。数据报套接字是表示发送或接收数据报包的套接字。它在数据通信中的作用有点类似于邮局。需要传输的数据通常封装成数据报包,这有点类似于各自信件。

    通过UDP进行网络数据通信的程序设计模型如下图所示(这个模型既适用于服务器端,

    也适用于客户端。不过在具体实现上有细微差别)

  • 相关阅读:
    思念
    Matlab与C++混合编程,添加OpenCV库
    重新启用此博客
    将博客搬至CSDN
    unity探索者之ILRuntime代码热更新
    unity探索者之UGUI圆形图片组件
    unity探索者之UGUI图片描边
    unity探索者之iOS微信登录、分享
    unity探索者之复制内容到剪贴板
    unity探索者之获取设备当前电量
  • 原文地址:https://www.cnblogs.com/liuzhen1995/p/5917699.html
Copyright © 2011-2022 走看看