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()获得一个输入流
用```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地址,远地进程的协议端口。    
-- [套接字](https://baike.so.com/doc/383276-405861.html)  

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

## [代码托管](https://gitee.com/xyx-nice/20165203xyx.git)    
  
![](https://images2018.cnblogs.com/blog/1297630/201804/1297630-20180428131837750-1573527221.jpg)
## 上周考试错题总结  

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

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/481/120/20
第二周390/4382/318/38
第三周886/13041/418/56
第四周1105/24091/530/86
第五周1229/31961/620/106
第六周1147/43432/825/131
第七周1862/36681/920/151
第八周955/52981/1020/171
第九周1413/58011/1111/182

转载于:https://www.cnblogs.com/20165203-xyx/p/8967052.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值