1.网络通讯协议分几层?各层解决什么问题?
分为七层
物理层:
通过物理接口实现互联设备间比特形式的数据传输
数据链路层:
数据通道的建立与拆除
网络层:
解决跨越多个链路甚至不同设备间的通信问题,提供端对端的接口。
传输层:
解决处于不同网络设备间的通信连接、通信管理
应用层:
与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。
表示层:
主要功能是定义数据格式,代码转换和数据加密。
会话层:
建立或解除与其他接点的联系。
2.TCP和UPD有什么不同,为什么称TCP是面向连接的可靠协议?
区别:
1.TCP面向连接,UDP是无连接的
2.TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。UDP尽最大努力交付,即不保证可靠交付。
3.TCP传输效率相对较低。UDP传输效率高.
4.TCP连接只能是点到点、一对一的。UDP支持一对一,一对多,多对一和多对多的交互通信。
5.TCP可以传输大量数据,UDP传输数据报较小
原因:
建立TCP连接时,要三次握手,而UDP唔三次握手过程,每个数据报都是一个独立的消息。
3.在Java语言中,网络编程是从协议的什么层次开始的?程序设计时,什么情况下选择Java高层次网络编程,什么情况下选择低层次网络编程?
从网络层开始。
高层次适用于面向Internet的通信,低层次面向内部网络通信。
4.Socket编程时,目的地址和端口号需要在什么地方指出?使用数据报时,又在什么地方指出?
Socker编程时地址和端口号在创建客户端时
使用数据报时在构造DatagramPacket时指出。
5.利用URLConnetction对象编写程序返回某网站的首页,并将首页的内容存放到文件当中
import java.io.*;
import java.net.*;
public class html {
public static void main(String[] args) throws IOException {
URL url= new URL("https://www.qq.com/");
URLConnection con = url.openConnection();
BufferedReader in= new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
FileOutputStream fos = new FileOutputStream("D:\\test.txt");
String line;
while((line = in.readLine()) != null ) {
line = line + "\n";
fos.write(line.getBytes("UTF-8"));
fos.flush();
}
is.close();
fos.close();
}
}