IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> TCP网络编程 -> 正文阅读

[系统运维]TCP网络编程

1. 网络相关概念

  1. 网络通信:两台设备之间通过网络实现数据传输;
  2. java.net包下提供了一系列的类或接口,完成网络通信;

局域网:覆盖一个学校、单位、公司;
城域网:覆盖一个城市;
广域网:覆盖一个国家、全球;

1.1 ip地址

  1. 概念:用于唯一标识网络中的每台计算机。
  2. 查看ip地址:ipconfig
  3. ip表示:对于IPv4 (一个字节8位,四个字节32位)
    在这里插入图片描述
  4. ip地址的组成:网络地址(xx市xx区xx小区)+主机地址(房间号)
  5. IPv4地址最大的问题是网络地址资源有限,严重制约了互联网的发展
  6. IPv6使用128位表示地址,相当于是16个字节(128/8)
  7. 127.0.0.1代表的是本机地址;

1.2 域名

  1. 概念:将ip地址映射成域名;域名就代表ip地址,并且方便记忆
    在这里插入图片描述
    ip唯一确定主机,端口号唯一确定主机上的程序服务;

1.3 端口号

  1. 端口号:用于标识计算机上某个特定的网络程序;
  2. 表现形式:整数形式,范围0~65535(用二个字节表示端口,2^16-1);
  3. 0~1024已被占用,比如:ssh 22,ftp 21,smtp 25,http 80;
  4. 常用的网络程序端口号:tomcat(8080),mysql(3306),oracle(1521),sqlserver(1433);

1.4 网络通讯协议

  1. 概念:语言本身就是一种协议,在网络编程中,数据的组织形式就是协议;
  2. TCP协议:传输控制协议,三次握手;
  3. UDP协议:用户数据协议,发送数据结束时无需释放资源;

2. TCP字节流编程

2.1 InetAddress类

在这里插入图片描述

  1. getLocalHost->获取本机InetAddress对象(ip地址对象 主机名+ip地址)
  2. getByName->根据 主机名/域名 获取InetAddress对象(ip地址对象 主机名+ip地址)
    在这里插入图片描述
  3. 获取InetAddress对象(主机名/域名+ip地址)其中的ip地址
  4. 获取InetAddress对象(主机名/域名+ip地址)其中的主机名/域名在这里插入图片描述
    5.

2.2 Socket

  1. 通信的两端都要有Socket,是两台机器间通信的端点;
  2. 网络通信实际上就是Socket间的通信;
  3. Socket允许程序把网络连接看成一个流,数据在两个Socket间通过IO流传输;
    在这里插入图片描述

2.2.1 客户端到服务端

在这里插入图片描述
在输出流结束的时候,设置结束标记
在这里插入图片描述
服务器端
在这里插入图片描述
客户端
在这里插入图片描述

2.2.1 服务端到客户端

在这里插入图片描述
服务端
在这里插入图片描述
客户端
在这里插入图片描述

3. TCP字符流编程

3.1 客户端到服务端

在这里插入图片描述
插入一个换行符,表示写入的内容结束
BufferedWriter.newLine()
字符流输出完毕后,需要手动刷新,否则数据不会进入到数据通道
BufferedWriter.flush()
客户端修改
在这里插入图片描述
服务端修改
在这里插入图片描述

3.2 服务端到客户端

客户端修改
在这里插入图片描述
服务端修改
在这里插入图片描述

4. TCP网络通信编程

在这里插入图片描述

5. netstat

netstat指令
netstat -an可以查看当前主机网络情况,包括端口监听情况和网络连接情况
netstat -an | more可以分页显示

说明
(1)Listening 表示某个端口在监听
(2)如果有一个外部程序(客户端)连接到该端口,就会显示一条连接信息
在这里插入图片描述
(3)可以输入 Ctrl + C 退出命令

(4) 当客户端连接到服务端后,客户端也是通过一个端口和服务端进行通讯的,这个端口是TCP/IP来分配的,是随机的;
在这里插入图片描述

6. UDP网络通信编程

6.1 UDP原理

●基本介绍

  1. 类 DatagramSocket 和 DatagramPacket 实现了基于 UDP 的协议网络程序;
  2. UDP数据通过数据报套接字 DatagramSocket 发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也无法确定什么时候可以抵达;
  3. DatagramPacket 对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号;
  4. UDP协议中每个数据报都给出了完整的地址信息,因此无需建立发送方和接收方的连接;

●基本流程
5. 核心的两个类/对象,DatagramSocket 和 DatagramPacket;
6. 建立发送端,接收端(没有服务端和客户端概念);
7. 发送数据前,建立数据包/报 DatagramPacket对象;
8. 调用DatagramSocket的发送,接受方法;
9. 关闭DatagramSocket;

6.2 UDP网络通信编程

在这里插入图片描述
接收端
在这里插入图片描述
发送端
在这里插入图片描述
在这里插入图片描述

7. TCP文件下载

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:43:44  更:2022-12-25 11:46:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/20 13:17:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码