一、教材学习内容总结
主要内容
-
URL类
- URL类是java.net包中的一个重要的类,使用URL创建对象的应用程序称作客户端程序。
- 客户利用URL对象可以获取URL中的资源。
- 一个URL对象通常包含最基本的三部分信息
协议:必须是URL对象所在的Java虚拟机支持的协议,常用的有:Http、Ftp、File协议,由参数protocol指定。
地址:必须是能连接的有效IP地址或域名,由参数host指定。
资源:可以是主机上的任何一个文件,由参数file指定。
构造方法:
public URL (String spec) throws MalformedURLException
所包含的资源位默认的资源(主页)
public URL(String protocol, String host,String file) throws Exception
protocol指定协议,host指定地址,file指定资源
-
InetAdress类
Internet上的主机有两种地址的表示:域名和IP地址
- 获取地址
获取Internet上主机的地址:可以使用InetAddress
类的静态方法getByName(String s);
获取本地机的地址:可以使用InetAddress
类的静态方法getLocalHost()
获得一个InetAddress对象,该对象含有本地机的域名和IP地址
两个实例方法:
public String getHostName()
获取对象所含的域名;public String getHostAdress()
获取对象所含的IP地址。
-
套接字
网络通信使用IP地址标识Internet上的计算机,使用端口号标识服务器上的进程(程序)。
当两个程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起(端口号与IP地址的组合得出一个网络套接字)。
套接字中与mysocket相关的方法:
- getInputStream()获得一个输入流
- 用getInputStream()得到的输入流接到另一个DataInputStream数据流上
- getOutputStream()获得一个输出流
- 用getOutputStream()得到的输出流接到另一个DataOutputStream数据流上
- 客户端套接字
- 客户端的程序使用
Socket
类建立负责连接到服务器的套接字对象,Socket类的构造方法:Socket(String host, int port)
- 使用
getInputStream()
获得一个输入流,getOutputStream()
获得一个输出流
- 客户端的程序使用
- ·ServerSocket
对象与服务器端套接字 -
ServerSocket的构造方法:
ServerSocket(int port),port 是一个端口号。 - 使用方法
accept()将客户端的套接字和服务器端的套接字连接起来: ``` try{ Socket sc= serverForClient .accept(); } catch(IOException e){} ``` - 所谓“接收”客户的套接字连接就是
accept()方法会返回一个和客户端
Socket对象相连接的
Socket`对象
-
广播数据报
计算机地址分为四大类:
- A类地址:a<128,则b.c.d表示主机。
- B类地址:128<=a<192,则a.b表示网络地址,c.d表示主机地址。
- C类地址:a>=192,a.b.c表示网络地址,d表示主机地址。
- D类地址:224.0.0.0~224.255.255.255是保留地址,要广播或接收广播的主机都必须加入到同一个D类地址。
-
Java远程调用(RMI)
- java远程调用RMI是一种分布式技术,使用RMI可以让一个虚拟机(JVM)上的应用程序请求调用位于网络上另一处的JVM上的对象方法。习惯上称发出调用请求的JVM为(本地)客户机,称接受并执行请求的虚拟机(JVM)为(远程)服务器.
- 远程调用的基本步骤是:客户程序请求远程对象调用方法,然后远程对象调用方法并返回必要的结果。
- RMI为标志远程对象,实现了
java.rmi
包中的Remote
接口,注意必须扩展这个接口,同时远程对象的类必须要实现Remote
接口。 - 远程对象创建之前,RMI要求远程服务器必须先启动注册
rmiregistry
。然后远程服务器使用java.rmi
包中的Naming
类调用类方法rebind(String name.Remote obj)
绑定一个远程对象到rmiregistry
所管理的注册表中。
emote接口
- RMI为了代码调试中的问题和解决过程标识一个对象是远程对象,即可以被客户请求的对象,要求远程对象必须实现
java.rmi
包中的Remote
接口,也就是说只有实现该接口的类的实例才被RMI认为是一个远程对象
代码调试中的问题和解决过程
虚拟机中gmssl按步骤安装时出现问题。
,
参考:https://blog.csdn.net/nange_nice/article/details/82182635解决
代码托管:
https://blog.csdn.net/nange_nice/article/details/82182635