java网络通信 作业

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

物理层:比特流传输
数据链路层:两个相邻结点间的点到点的帧传输
网络层:跨多个链路甚至不同网络设备间的通信问题
传输层:为两主机间的进程通信提供可靠服务
会话层:提供网络中两主机之间会话的建立、维持和终止等
表示层:提供网络传输的标准格式
应用层:直接为用户的应用进程提供服务

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

TCP和UDP的不同点

  • TCP是基于连接的,UDP是一种无连接的协议,每个数据报是一个独立信息,包括完整的源地址和目的地址。
  • 在传输数据量方面,TCP协议可以传输大量数据,UDP传输时有大小限制,每个数据报必须在64KB之内。
  • 在可靠性方面,TCP是一个可靠的协议,可以确保接收方完全正确的获取发送方所发送的全部数据。UDP是一个不可靠的协议,不能保证数据报一定被接收方收到,也不能保证次序正确。
  • UDP操作简单,传输效率更高。TCP则传输量大,可靠性高。

TCP是面向连接的可靠协议
在这里插入图片描述
“三次握手”建立连接,通过“连接请求消息段”、“允许连接消息段”和“连接确认消息段”建立连接。
使用ack机制,发送方向接收方发送数据后,接收方要向发送方发送ack。比如:发送方发送的数据序号是seq,那么接收方会发送seq + 1作为ack,这样发送方就知道接下来要发送序号为seq + 1的数据给接收方。

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

Java网络编程从传输层开始。
Java高层次网络编程:使用http协议,可以跨越网络防火墙,适用于面向Internet的通信。
Java低层次网络编程:面向内部网络通信。

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

Socket编程:在创建客户端socket时指出目的机器的地址和端口号。
数据报:使用DatagramPacket类对象作为传输数据的载体,在构造DatagramPacket时指出目的地址。

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

将必应主页的内容写入到当前目录下urlreadout.txt中。

import java.net.*;
import java.io.*;
public class URLReader {//声明抛出所有例外
    public static void main(String[] args) throws Exception {
        try{
            URL url = new URL("https://cn.bing.com/");
            URLConnection con = url.openConnection();
            InputStream is = con.getInputStream(); 
            BufferedReader in = new BufferedReader(new InputStreamReader(is,"UTF-8"));
            BufferedWriter out = new BufferedWriter(new FileWriter("urlreadout.txt"));
            String inputLine;
            //从输入流不断的读数据,直到读完为止
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine); //把读入的数据打印到屏幕上
                out.write(inputLine+"\r\n");
            }
            in.close(); //关闭输入流
            out.close();
        }catch(Exception e){
            System.out.println(e);
        }
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值