2018-2019 2 20175230《Java程序设计》第十一周学习总结
《Java程序设计》第十一周学习总结
教学内容总结
URL类
URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(Uniform Resource Locator),使用URL创建对象的应用程序称作客户端程序。
一个URL对象通常包含最基本的三部分信息:协议、地址、资源。
-
URL的构造方法
URL类通常使用如下的构造方法创建一个URL对象:
public URL(String spec) throws MalformedURLException
public URL(String protocol, String host,String file) throws MalformedURLException -
读取URL中的资源
URL对象调用
InputStream openStream()
方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源读入到客户端。
InetAdress类
-
地址的表示
Internet上的主机有两种方式表示地址:
域名
例如 www.tsinghua.edu.cn -
IP地址
例如 202.108.35.210
java.net包中的InetAddress类对象含有一个Internet主机地址的域名和IP地址,例如 www.sina.com.cn/202.108.37.40 。 -
获取地址
获取Internet上主机的地址
可以使用InetAddress类的静态方法getByName(String s);
获得一个InetAddress对象,该对象含有主机地址的域名和IP地址,该对象用如下格式表示它包含的信息:
www.sina.com.cn/202.108.37.40
获取本地机的地址
我们可以使用InetAddress类的静态方法getLocalHost()获得一个InetAddress对象,该对象含有本地机的域名和IP地址。
套接字
-
套接字
IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)。端口号被规定为一个16位的0~65535之间的整数。
当两个程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起(端口号与IP地址的组合得出一个网络套接字)。 -
客户端套接字
客户端的程序使用Socket类建立负责连接到服务器的套接字对象。
建立连接到服务器的套接字对象:
try{ Socket mysocket=new Socket(“http://192.168.0.78”,1880);
}
catch(IOException e)
{ }
与mysocket相关的方法
getInputStream()获得一个输入流
getOutputStream()获得一个输出流
用getInputStream()得到的输入流接到另一个DataInputStream数据流上
用getOutputStream()得到的输出流接到另一个DataOutputStream数据流上 -
ServerSocket对象与服务器端套接字
服务器必须建立一个ServerSocket对象,该对象通过将客户端的套接字对象和服务器端的一个套接字对象连接起来,从而达到连接的目的。
建立ServerSocket对象:
try{ ServerSocket serverForClient =new ServerSocket(2010);
}
catch(IOException e){}
使用方法accept()将客户的套接字和服务器端的套接字连接起来,代码如下所示:
try{ Socket sc= serverForClient .accept();
}
catch(IOException e){}
所谓“接收”客户的套接字连接就是accept()方法会返回一个和客户端Socket对象相连接的Socket对象。
客户端的套接字获得的输入\输出流和服务器端的套接字获得的输出\输入流互相连接. -
使用多线程技术
为了防止堵塞线程,服务器端收到一个客户的套接字后,就应该启动一个专门为该客户服务的线程。
总结
理解 URL类是对统一资源定位符的抽象,使用URL创建对象的应用程序称作客户端程序。
网络套接字是基于TCP协议的有连接通信,套接字连接就是客户端的套接字对象和服务器端的套接字对象通过输入、输出流连接在一起。
代码调试遇到的问题
-
问题一
-
问题一的解决方法 没找到
-
问题二