Java SE学习笔记 -- 网络编程

本文介绍了网络编程的基础知识,包括OSI七层模型的应用层、传输层、网络层等职责,以及TCP和UDP协议的特性。TCP协议确保了可靠的数据传输,而UDP则提供了更高的效率但不保证数据可靠性。此外,还讲解了客户端-服务器(CS)模型,并展示了Java中TCP服务器和客户端的实现流程。
摘要由CSDN通过智能技术生成

网络编程学习笔记

@拉勾训练营的程序🐒一枚 - Java就业7期

分层模型

  • OSI(Open System Interconnect)网络模型是ISO组织定义的一个计算机互联的标准模型,注意它只是一个定义,目的是为了简化网络各层的操作,提供标准接口便于实现和维护。这个模型从上到下依次是:
  1. 应用层,提供应用程序之间的通信;
  2. 表示层:处理数据格式,加解密等等;
  3. 会话层:负责建立和维护会话;
  4. 传输层:负责提供端到端的可靠传输;
  5. 网络层:负责根据目标地址选择路由来传输数据;
  6. 链路层和物理层负责把数据进行分片并且真正通过物理网络传输,例如,无线网、光纤等。
  • 常用协议
  1. IP协议是一个分组交换,它不保证可靠传输。而TCP协议是传输控制协议,它是面向连接的协议,支持可靠传输和双向通信。TCP协议是建立在IP协议之上的,简单地说,IP协议只负责发数据包,不保证顺序和正确性,而TCP协议负责控制数据包传输,它在传输数据之前需要先建立连接,建立连接后才能传输数据,传输完后还需要断开连接。TCP协议之所以能保证数据的可靠传输,是通过接收确认、超时重传这些机制实现的。并且,TCP协议允许双向通信,即通信双方可以同时发送和接收数据。TCP协议也是应用最广泛的协议,许多高级协议都是建立在TCP协议之上的,例如HTTP、SMTP等。
  2. UDP协议(User Datagram Protocol)是一种数据报文协议,它是无连接协议,不保证可靠传输。因为UDP协议在通信前不需要建立连接,因此它的传输效率比TCP高,而且UDP协议比TCP协议要简单得多。选择UDP协议时,传输的数据通常是能容忍丢失的,例如,一些语音视频通信的应用会选择UDP协议。
CS模型(Client + Server)
  • TCP流程
  1. 服务器端
    Java中通过SocketServer这个类来实现服务器的搭建。
int port = 8080; //指定端口
ServerSocket server = new ServerSocket(port); //实例化ServerSocket类对象
Socket socket = server.accept(); //进行侦听
//添加输入输出流读取发送信息
//输入流读取信息,接收信息
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //得到socket的输入
String message = reader.readLine();
//进行数据的回发
PrintStream ps = new PrintStream(socket.getOutputStream()); //获取输//出流回发数据 
ps.println(str);   
ps.flush();
//端口输入输出流的关闭
reader.close();
socket.close();
server.close();
  1. 客户端
//Java中通过Socket套接字来实现客户端
String host =127.0.0.1"; //指定服务器IP
int port = 8080; //指定端口
Socket client = new Socket(host, port); // 实例化Socket对象
//发送数据
PrintStream ps = new PrintStream(client.getOutputStream());
ps.println(“Hello From Client”); 
//接收数据
BufferedReader reader = 
new BufferedReader(new InputStreamReader(socket.getInputStream())); //得到socket的输入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值