网络通信协议分几层?各层解决的问题是什么?
7层:
应用层:直接为用户的应用程序提供服务
表示层:提供网络传输的标准格式
会话层:提供网络中两主机之间会话的建立、维持、终止等
传输层:为两主机间的进程通信提供可靠服务
网络层:为分组交换网上的不同主机提供通信服务,包括路由、地址解析等
数据链路层:两个相邻点间的点到点的帧传输
物理层:比特流传输
TCP和UPD协议有什么不同,为什么称TCP是面向连接的可靠的协议?
对于TCP协议而言,它首先要求在传输数据之前必须建立连接,一旦连接建立,双方的Socket便可以按照统一的格式传输大量数据。
UPD则不需要建立连接,因此每次传输数据时,都需要给出接收方的地址,而且传输的数据有一定的大小限制
在Java语言中,网络编程是从协议的什么层次开始的?程序设计时,什么情况下选择Java高层次网络编程,什么情况选择低层次网络编程?
Java网络编程时从传输层开始,并根据编程使用的协议的层次分为高层次(基于应用层)与低层次网络编程(基于传输层)
Socket编程时,目的地址和端口号需要在什么地方指出?使用数据报时,又在什么地方指出?
Socket编程时,目的地址和端口在创建Socket对象时指出
数据报编程时,的地址和端口在新建DatagramPacket对象时指出
利用URLConnetction对象编写程序返回某网站的首页,并将首页内容存放到文件当中。
package test;
import java.io.*;
import java.net.*;
public class test{
public static void main(String[] args) throws Exception{
URL tirc=new URL("http://www.baidu.com/");
BufferedReader in =new BufferedReader(new InputStreamReader(tirc.openStream()));
String inputtt;
FileOutputStream fileoutputstream=null;
File file=new File("baidu.txt");
if(!file.exists()) file.createNewFile();
fileoutputstream=new FileOutputStream(file);
while((inputtt=in.readLine())!=null) {
fileoutputstream.write(inputtt.getBytes("gbk"));
fileoutputstream.flush();
}
in.close();
fileoutputstream.close();
}
}