1.网络通信协议分几层?各层解决的问题是什么?
2.TCP和UPD协议有什么不同?为什么称TCP是面向连接的可靠协议?
1.通信方式:TCP进行数据传输之前要建立联系。UPD无需建立发送方和接收方之间的连接
2.传输数据量:TCP:双方的socket可以按照统一的格式传输大量数据。UPD:传输数据有大小限制(64KB)
3.传输数据的可靠性:TCP:可靠协议,能保证接收方完全正确地获取发送方所发送的全部数据。UPD:不可靠协议,发送方所发送的数据报不一定以相同的次序到达接收方,也不能保证接收方一定能收到
4.特点:TCP:传输量大,可靠性强。UPD:操作简单,传输效率高。
TCP建立连接需要通过三次握手来实现,所以是可靠的传输协议.
3.在java语言中,网络编程是从协议的什么层次开始的?程序设计时,什么情况选择java高层次网络编程,什么情况下选择低层次网络编程?
从传输层开始的
java高层次网络编程:基于URL的网络编程(基于应用层)
java低层次网络编程:基于传输层的网络编程(如TCP,UPD)
4.Socket编程时,目的地址和端口号需要在什么地方指出?使用数据报时,又在什么地方指出?
分别在创建客户端时和构造DatagramPacket时指出。
5.利用URLConnection对象编写程序返回某网站的首页,并将首页内容存放到文件当中。
package url;
import java.io.*;
import java.net.*;
public class URL{
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 inputline;
FileOutputStream fileoutputstream=null;
File file=new File("test.txt");
if(!file.exists()) file.createNewFile();
fileoutputstream=new FileOutputStream(file);
while((inputline=in.readLine())!=null) {
fileoutputstream.write(inputline.getBytes("gbk"));
fileoutputstream.flush();
}
in.close();
fileoutputstream.close();
}
}
补充题:
仿照例15.4,编写完整的基于Socket的多客户/服务器通信程序
仿照例15.5,编写完整的基于数据报的多客户/服务器通信程序