URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL建立对象的应用程序称做客户端程序。java
构造方法git
public URL (String spec) throws MalformedURLException//所包含的资源位默认的资源(主页) public URL(String protocol,String host,String file) throws MalformedURLException//protocol指定协议,host指定地址,file指定资源
InputStream openStream()
方法返回一个输入流。地址的表示:域名和IP地址编程
getByName(String s)
将一个域名或 IP 地址传递给该方法的参数 S,得到一个 InetAddress 对象;public String getHostName()
获取InetAddress对象所含的域;public String getHostAddress()
获取InetAddress对象所含的IP地址。获取本地机的地址:可使用InetAddress类的静态方法getLocalHost()得到一个InetAddress对象,该对象含有本地机的域名和IP地址。服务器
当两个程序须要通讯时,它们能够经过使用Socket类创建套接字对象并链接在一块儿(端口号和IP地址的组合得出一个网络套接字)。网络
Socket类的构造方法:Socket(String host, int port)
,参数host是服务器的IP地址,port是端口号。分布式
//创建链接到服务器的套接字对象 try { Socket clientSocket = new Socket("http://192.168.0.78",2010); } //(IP,端口号) catch(IOException e) {} ServerSocket 的构造方法: ServerSocket(int port) //其中port 是一个端口号。
//创建ServerSocket对象 try{ ServerSocket serverForClient = new ServerSocket(2010); }//(端口号) catch(IOException e) {} //使用accept()方法将客户端和服务器端套接字链接起来 try{ Socket sc = serverForClient.accept(); } catch(IOException e) {}
从套接字链接中读取数据与从文件中读取数据有着很大的不一样,从文件中读取数据时,全部的数据都已经在文件中了,而使用套接字链接时,可能在另外一端数据发送以前,就已经开始读取了。学习
注意:accept方法会阻塞线程的执行,直到接收到客户的呼叫。测试
套接字通讯基本原则:服务器应当启动一个专门的线程,在该线程中和客户的套接字创建链接。因为套接字的输入流在读取信息时可能发生阻塞,客户端和服务器端都须要在一个单独的线程中读取信息。url
套接字是基于TCP协议的网络通讯。.net
UDP的信息传递更快,但不提供可靠性保障,即没法知道数据可否正确到达目的地,也不能肯定数据到达目的地的顺序是否和发送的顺序相同。
用DatagramPacket的如下两个构造方法建立待发送的数据包:
DatagramPacket(byte data[],int length,InetAddtress address,int port) DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
要广播或接收广播的主机都必须加入到同一个D类地址。
D类地址不是用来你表明位置的,即在网络上不能使用D类地址去查找计算机。
RMI是一种分布式技术,使用RMI可让一个虚拟机上的应用程序请求调用位于网络上另外一处虚拟机上的对象。
代理的特色是它与远程对象实现了相同的接口。
存根是一种特殊的字节码,并让这个存根产生的对象做为远程对象的代理,其字节码后缀为"_Stub"。
远程对象必须实现java.rmi包中的Remote接口。
代理的特色是它与远程对象实现了相同的接口
问题1:课上测试的gmssl库的使用,我在安装配置时,出现了以下问题:
解决1:在终端输入
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1 ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
问题2:感受在一台机器上链接没什么用,尝试在两台电脑上使用套接字链接服务器
实现2:刚开始一直连不上,后来发现端口要设置成一个1024以上的自定义端口,ip要设置成对方电脑的ip4地址
链接成功~