• JAVA 第十一周学习总结


    20175308 2018-2019-2 《Java程序设计》第十一周学习总结

    教材学习内容总结

    13.1 URL类:
    • URL类是java.net包中的一个类,用URL创建的对象可以获取URL中的资,其包括三部分信息:协议、地址和资源。注意,协议必须被Java虚拟机所支持,地址必须是能链接的IP地址或域名。

    • URL类有两个构造方法来创建URL对象:①public URL [链接名] throws MalformedURLException;public URL([协议],[地址],[资源]) throws Exception

    • URL对象调用InputStream()方法返回一个指向对象包含的资源的输入流,可以用来读取信息。

    13.2 InetAddress类
    • Internet上的主机有两种方式来表示地址:①地址(如www.xxxxxxxx.com)②IP地址(如202.xxxxxxx)。

    • InetAdress类的两个static方法:①getByName(String s),其中s是域名或者IP地址,调用此方法可以获得InetAdress对象,含有主机地址的域名与IP地址,表示信息的格式为[域名]/[IP地址];②getLocalHost()获得一个InetAdress对象,该对象还有本地机器的域名和IP地址。同时,IntAdress类中还有两个实例方法:①public String getHostName()获取对象所含的域名;②public String getHostAdress()获取对象所含的IP地址。

    13.3 套接字:
    • IP地址表示计算机,端口号表示进程(线程),Socket类创建套接字对象并连接在一起(端口号与IP地址组合)。

    • 客户端程序用Socket类创建负责连接到服务器的套接字对象,其构造方法为Socket([IP地址],[端口号])(可能抛出IOException异常)。对套接字对象建立后,可以使用①getInputStream()获得一个输入流来读取服务器写入到输出流中的数据;②getOutputStream()获得一个输出流,服务器可以用输入流来读取客户写入到输出流中的数据。

    • 客户负责建立连接到服务器的套接字对象。服务器需要创建一个ServerSocket对象来将客户端的套接字对象与服务器的套接字对象连接起来。ServerSocket的构造方法是ServerSocket([端口号])(当端口已被占用会抛出IOException异常)。接着,ServerSocket对象调用accept()方法再次返回一个与客户端对象相连接的新的Socket对象。同样的,它也具有上述的两个方法。

    • 从套接字连接中读取数据,可能在另一端数据发送之前就已经开始读取了,而且会阻塞本线程,直到成功读取到信息。同时,accept方法也会阻塞线程的执行,直到收到客户的呼叫。为了解决“收不到呼叫而导致程序无法继续运行”的情况,ServerSocket对象在调用accept方法之前可以先调用setTimeout(s)方法来使得在调用accept方法时如果超过s毫秒没有收到呼叫,就抛出SocketTimeoutException异常。

    • 通信完毕后要使用close关闭连接

    • 使用多线程技术:由于使用套接字连接中读取数据时,可能会阻塞本线程直到成功读取到信息。为了避免这种情况,需要启动一个专门为该客户服务的线程。Socket的构造方法Socket()可以创建一个套接字对象,该对象调用public void connect(SocketAddress endpoint) throws IOException来与指定的套接字创建连接。这里的参数可以使用InetSocketAddress的构造方法public InetSocketAdress(InetAdress addr,int port)来获得。

    • 套接字通信的两个基本原则:
      ①服务器要启动一个专门的线程与客户的套接字建立连接;
      ②套接字的输入流在读取信息时可能发生阻塞,所以客户端与服务器端都需要在一个单独的线程中读取信息。

    13.4 UDP数据报
    • 比较UDP协议与TCP协议:UDP速度较快,但无法保证能否送到目的地且无法保证送达时的顺序

    • 数据包的发送与接收:使用DatagramPacked类的构造方法DatagramPacket([字节数组],[长度],[地址],[端口])创建数据包对象,使用DatagramSocket类创建的对象调用send([数据包])方法来发送数据包。要接收数据包之前,首先要用使用DatagramSocket类创建的对象,调用构造方法DatagramSocket(端口号)与被发送的数据包创建连接,然后这个创建的对象调用receive([数据包])方法来接收数据包,其中数据包对象可以用DatagramSocket类得到构造方法DatagramPacket([字节数组],[长度])来创建数据包对象。

    注意事项:receive方法可能引起阻塞,直到收到数据包,且数据包的长度不能超过8192KB

    13.5 广播数据报

    此处内容在计算机网络课中已有提及,简单介绍
    Internet的地址是a.b.c.d的形式,计算机地址分为四大类:
    ②A类:a<128,则a表示网络地址,b,c,d表示主机地址;
    ②B类:128<=a<192,则a,b表示网络地址,c,d表示主机地址;
    ②B类:192<=a则a,b,c表示网络地址,d表示主机地址;
    ②B类:224.0.0.0~224.255.255.255是保留地址,称为D类地址。

    教材学习中的问题和解决过程

    • 本章内容与目前实际应用关联相对较小,除了课本中的内容缺少实践操作的机会。实验五题为网络编程,等到完成相关的练习理解应该会更加透彻。
    • 最近琐事颇多,对学习java带来了比较大的时间冲击。有许多问题来不及写入本博客中,有时间会再详细介绍。

    代码托管

  • 相关阅读:
    ios面试题2
    ios面试题
    iOS面试题最全集锦
    android 比较靠谱的图片压缩
    iOS开发UITableView基本使用方法总结 分类: ios技术 2015-04-03 17:51 68人阅读 评论(0) 收藏
    总结分享十大iOS开发者最喜爱的库 分类: ios相关 app相关 2015-04-03 16:43 320人阅读 评论(0) 收藏
    iOS开发网络数据之AFNetworking使用 分类: ios技术 2015-04-03 16:35 105人阅读 评论(0) 收藏
    苹果App Store开发者帐户从申请,验证,到发布应用(4) 分类: ios相关 app相关 2015-04-03 12:07 160人阅读 评论(0) 收藏
    苹果App Store开发者帐户从申请,验证,到发布应用(3) 分类: ios相关 app相关 2015-04-03 12:05 128人阅读 评论(0) 收藏
    苹果App Store开发者帐户从申请,验证,到发布应用(1) 分类: ios相关 app相关 2015-04-03 11:57 209人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/darklord0604/p/10855017.html
Copyright © 2020-2023  润新知