Java学习记录(网络通信)

2022-07-27,,,

1. 网络通信协议分几层?各层解决的问题是什么?

  • OSI七层协议(Open System Interconnection)
  • TCP/IP四层协议

2. TCP和UPD协议有什么不同,为什么称TCP是面向连接的可靠的协议?

  • 通信方式
    TCP:进行数据传输之前必然要建立连接,所以在TCP中多了一个连接建立的时间;
    UDP:每个数据报中都给出了完整的地址信息,因此无须建立发送方和接收方的连接
  • 传输数据量
    TCP:一旦连接建立起来,双方的Socket就可以按统一的格式传输大量的数据
    UDP:传输数据时有大小限制,每个被传输的数据报必须在64KB之内
  • 传输数据可靠性
    TCP:TCP是一个可靠的协议,它能确保接收方完全正确地获取发送方所发送的全部数据
    UDP:UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方,也不能保证接收方一定能收到
  • 各自特点
    TCP:传输量大,可靠性强。例如远程连接和文件传输都需要不定长度的数据被可靠地传输
    UDP:操作简单,传输效率高
  • TCP是面向连接的可靠的协议原因:通过TCP协议传输,得到的是一个顺序的无差错的数据流,且两主机之间的连接要连续交换3次消息

3.在Java语言当中,网络编程是从协议的什么层次开始的?程序设计时,什么情况下选择Java高层次网络编程,什么情况下选择低层次网络编程?

  • 传输层。
  • 根据编程使用协议的层次分为高层次网络编程(基于应用层)和低层次网络编程(基于传输层),高层次网络编程适用于面向Internet的通信,而低层次网络编程则面向内部网络通信。

4.Socket编程时,目的地址和端口号需要在什么地方指出?使用数据报时,又在什么地方指出?

  • Socket:在创建新的socket对象时
  • 数据报:在DatagramPacket的构造方法中

5. 利用URLConnetction对象编写程序返回某网站的首页,并将首页内容存放到文件当中。

public class Homepage {
	public static void main(String[] args) throws IOException {
        URL url=  new URL("http://www.hzau.edu.cn/");
        URLConnection con = url.openConnection();
        BufferedReader is = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
        FileOutputStream fos = new FileOutputStream("/Users/colleen/Desktop/hzau.html");//指定路径,它会自动新建一个文件
        String line;
        while((line=is.readLine()) != null) {
            line = line + "\n";
            fos.write(line.getBytes("UTF-8"));
            fos.flush();
        }
        System.out.println("Successful!");
        is.close();
        fos.close();
    }
}


本文地址:https://blog.csdn.net/Colleen_hh/article/details/109561076

《Java学习记录(网络通信).doc》

下载本文的Word格式文档,以方便收藏与打印。