• 20165203《Java程序设计》第九周学习总结


    20165203《Java程序设计》第九周学习总结

    教材学习内容总结

    URL类

    • URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用程序称作客户端程序。
    • 一个URL对象通常包含最基本的三部分信息:协议、地址、资源。
    • 构造方法:
      public URL(String spec) throws MalformedURLException   
    
      public URL(String protocol, String host,String file) throws MalformedURLException   
    
    • 读取URL中的资源:URL对象调用InputStream openStream()

    InetAdress类

    • 地址的表示:域名和IP地址
    • 获取Internet上主机的地址:
      1.可以使用InetAddress类的静态方法getByName(String s);
      2.获得一个InetAddress对象,该对象含有主机地址的域名和IP地址,该对象用如下格式表示它包含的信息:
      www.sina.com.cn/202.108.37.40
    • 获取本地机的地址
      可以使用InetAddress类的静态方法getLocalHost()获得一个InetAddress对象,该对象含有本地机的域名和IP地址。

    套接字

    • 与mysocket相关的方法
      getInputStream()获得一个输入流
      getOutputStream()获得一个输出流
      getInputStream()得到的输入流接到另一个DataInputStream数据流上
      getOutputStream()得到的输出流接到另一个DataOutputStream数据流上

    • ServerSocket对象与服务器端套接字:
      1.建立ServerSocket对象:

     	  try{  ServerSocket  serverForClient =new ServerSocket(2010);
    	  }
     	  catch(IOException e){} 
    

    2.使用方法accept()将客户的套接字和服务器端的套接字连接起来

    	    try{  Socket sc= serverForClient .accept();
      	    }
    	   catch(IOException e){}  
    

    3.所谓“接收”客户的套接字连接就是accept()方法会返回一个和客户端Socket对象相连接的Socket对象。

    • 使用多线程技术
      为了防止堵塞线程,服务器端收到一个客户的套接字后,就应该启动一个专门为该客户服务的线程。

    UDP数据报

    • 基于UDP通信的基本模式是:
      1将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地。
      2.接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。

    • 发送数据包
      1.用DatagramPacket的以下两个构造方法创建待发送的数据包:

    DatagramPacket(byte data[],int length,InetAddtress address,int port)
    DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)  
    

    2.用DatagramSocket类的不带参数的构造方法:DatagramSocket()创建一个对象,该对象负责发送数据包。例如:

    DatagramSocket  mail_out=new DatagramSocket();
    mail_out.send(data_pack);   
    
    • 接收数据包
      1.用DatagramSocket的另一个构造方法DatagramSocket(int port) 创建一个对象,其中的参数必须和待接收的数据包的端口号相同。
      2.对象mail_in使用方法receive(DatagramPacket pack)接受数据包。
      3.用 DatagramPack类的另外一个构造方法: DatagramPack(byte data[],int length)创建一个数据包,用于接收数据包

    广播数据报

    Java 远程调用(RMI)

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

    Q:在学习教材时,不太明白套接字的含义
    A:经过自己查阅百度和资料,得到了答案:

    • 源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。

    • 它是网络通信过程中端点的抽象表示,包含进行网络通信必需的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
      -- 套接字

    代码调试中的问题和解决过程

    代码托管

    上周考试错题总结

    对于下列程序,哪个叙述是正确的?

    public class E { 
     public static void main(String args[])  
     Target target =new Target();
    Thread thread =new Thread(target);
    thread.start();
     }
    }
    class Target implements Runnable{
    public void run(){
    System.out.println("ok"); }
    }    
    

    A.JVM认为这个应用程序共有两个线程。
    B.JVM认为这个应用程序只有一个主线程。
    C.JVM认为这个应用程序只有一个thread线程。
    D.thread的优先级是10级。

    正解:B
    解析:本题是用Thread创建的线程,很明显,Thread只创建了一个线程thread
    所以,我们在利用Thread声明线程时,thread声明了几个线程,自然线程就有几个。

    其他(感悟、思考等,可选)

    本周学习了Java专门用于网络编程的类,联系了计算机网络课上学到的知识,感觉收获颇丰。

    学习进度条

    ~ 代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 48/48 1/1 20/20
    第二周 390/438 2/3 18/38
    第三周 886/1304 1/4 18/56
    第四周 1105/2409 1/5 30/86
    第五周 1229/3196 1/6 20/106
    第六周 1147/4343 2/8 25/131
    第七周 1862/3668 1/9 20/151
    第八周 955/5298 1/10 20/171
    第九周 1413/5801 1/11 11/182
  • 相关阅读:
    python-设计模式:抽象类
    python协程的使用
    python生成器异步使用
    python2和python3的内存使用情况
    python基础
    python对象序列化pickle
    docekr-image的区别和container;docker run和start,create
    airflow 安装配置celery+rabbitmq celery+redis
    Centos7 安装部署 Airflow
    centos7 安装后静态ip的配置
  • 原文地址:https://www.cnblogs.com/20165203-xyx/p/8967052.html
Copyright © 2020-2023  润新知