网络编程笔记

本文介绍了计算机网络的主要功能,包括资源共享、信息传输和分布处理。讲解了通讯协议的分层结构,如应用层、传输层、网络层和数据链路层。接着深入探讨了IP地址的概念,以及InetAddress和InetSocketAddress的用途。重点讨论了UDP和TCP这两种传输层协议,UDP作为无连接、不可靠的服务,而TCP则提供面向连接、可靠的数据传输。文中还详细描述了UDP的DatagramSocket和DatagramPacket使用,以及TCP的三次握手和四次挥手过程。

0313

1.计算机网络

主要功能:

资源共享

信息传输与集中处理

均衡负载与分布处理

2.通讯协议的分层

应用层: 会话层、表示层、应用层

传输层

网络层

网络接口层:

​ 数据链路层

​ 物理层

3.IP地址

InetAddress

​ 封装计算机的ip地址和DNS(没有端口信息!)

//使用getLocalHost方法创建InetAddress对象
 InetAddress addr = InetAddress.getLocalHost();
// addr.getHostAddress()  返回:192.168.1.110
// getHostName()) 输出计算机名

InetSocketAddress

​ 包含IP和端口,常用于SOCKET通信。

4.UDP

​ UserDatagramProtocol,一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

其特点为:非面向连接;传输不可靠;数据可能丢失。

DatagramSocket

​ 用于发送或接收数据报的数据报包

​ 当服务器要向客户端发送数据时,需要在服务器端产生一个DatagramSocket对象,在客户端产生一个DatagramSocket对象。

服务器端的DatagramSocket将DatagramPacket发送到网络上,然后被客户端的DatagramSocket接收。

​ DatagramSocket有两种构造函数。一种是无需任何参数的,常用于客户端。另一种需要指定端口,常用于服务器。

常用方法: send , receive , close

DatagramPacket

​ 数据容器(封包)的作用

常用方法:构造函数

​ getAddrress(获取发送或接收方计算机的Ip地址)

​ getData(获取发送或接收的数据)

​ setData(设置发送的数据)

服务器端(流程):

①创建服务器 DatagramSocket类 +指定端口 (定义服务器端的监听端口)

②准备接收容器 字节数组 +封装成DatagramPacket数据报 (准备容器接收数据)

③接收数据

④分析数据

⑤释放资源

	DatagramSocket ds = new DatagramSocket(8999);
// 准备接收数据的容器空间
	byte[] b = new byte[1024];
// 数据报
	DatagramPacket dp = new DatagramPacket(b,b.length);
	ds.receive(dp); //阻塞式方法
	String string = new String(dp.getData(),0,dp.getLength());
//dp.getLength()返回实际收到的数据的字节数
	System.out.println(string);
	ds.close();

客户端(流程):

①创建客户端 DatagramSocket类 +指定端口 (定义客户端的监听端口)

②准备数据 字节数组

③封装成数据包 需要指定包发送的地址+端口 即服务器地与端口 (打包要发送的数据)

④发送数据

⑤释放资源

// 创建要发送数据报包的工具,我本身占用9000端口向外面机器发数据包
	DatagramSocket ds = new DatagramSocket(9000);
	byte[] b = "aaaa".getBytes();
//必须告诉数据包要发到哪里去, 封装数据时才指定目标电脑以及端口
	DatagramPacket dp = new DatagramPacket(b,b.length,new InetSocketAddress("localhost",8999));
	ds.send(dp);
	ds.close();

5.TCP

​ transfer control protocol

​ 一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transportlayer)通信协议的点到点的通信 。

​ TCP 三次握手(Three-way Handshake)和四次挥手,类似于拨打电话。

特点 :

​ 基于 tcp 协议,建立稳定连接的点对点的通信;实时、快速、安全性高、占用系统资源多、效率低;“请求-响应”模式:

  1. 客户端:在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序
  2. 服务器:第一次通讯中等待连接的程序被称作服务器端(Server)程序

服务器端:

①创建服务器 指定端口

创建服务器ServerSocket,在创建时,定义ServerSocket的监听端口(在这个端口接收客户端发来的消息!)

②等待客户端连接

ServerSocket调用accept()方法,使之处于阻塞状态

③分析接收数据

​ 利用Socket进行接收和发送数据

客户端:

①连接服务器: 创建客户端 +指定服务器地址 +端口

​ 创建客户机Socket,并设置服务器的ip及端口,客户机发出连接请求,建立连接。

②发送数据

通过Socket发送数据,和接收数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值