Linux操作系统之网络编程基本流程

一、网络编程的基本概念

  1. 什么是网络?

  1. 什么是互联网?

  1. IP地址:唯一标识一台主机

  1. MAC地址:48位 物理地址(虽然物理地址也可以唯一标识一台主机,但是物理地址不会随着位置的变化而变化,因此。我们必须使用ip地址来标识主机)

  1. 端口号:应用程序的代号。所以ip+port(端口)可以确定哪台主机上的哪个进程。归根结底网络间的通讯就是不同主机间进程的通讯。

  1. 协议:双方必须遵守的一种规则。网络协议:一组网络规定的规则的集合。

  1. 网络模型:实际使用的是tcp/ip模型。

  1. 为什么对网络进行分层?

  • 各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口所提供的服务。

  • 只要层间接口关系保持不变,则在这层以上或以下各层均不受影响

  • 当某层提供的服务不再需要时,甚至可以将这层取消。

  • 结构上可分割开。各层都可以采用最合适的技术来实现。

  1. 网络间如何进行数据的传输?

数据链路层是两个相邻节点进行数据的传输(A-B),而网络层是两个不相邻的节点(A-D)选择哪一条路径(ip 路由,转发),传输层解决了两个进程(A-D)间数据的传输。从而实现进程间通讯。

  1. 网络应用程序的通讯

二、tcp服务器端编程流程

  1. 流程图:

  1. 程序实现

服务器端:

客户端:

运行结果

三、编写程序出现的知识点

1.TCP头部结构(Linux高性能服务器编程)

2.三次握手

3.四次挥手

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口) 02TCPIP基础(二) 最大传输单元(MTU)/路径MTU 以太网帧格式 ICMP ARP RARP 03TCPIP基础(三) IP数据报格式 网际校验和 路由 04TCPIP基础(四) TCP特点 TCP报文格式 连接建立三次握手 连接终止四次握手 TCP如何保证可靠性 05TCPIP基础(五) 滑动窗口协议 UDP特点 UDP报文格式 Linux网络编程之socket编程篇 06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户 /服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-per-conection) 点对点聊天程序实现 09socket编程(四) 流协议与粘包 粘包产生的原因 粘包处理方案 readn writen 回射客户/服务器 10socket编程(五) read、write与recv、send readline实现 用readline实现回射客户/服务器 getsockname、getpeername gethostname、gethostbyname、gethostbyaddr 11socket编程(六) TCP回射客户/服务器 TCP是个流协议 僵进程与SIGCHLD信号 12socket编程(七) TCP 11种状态 连接建立三次握手、连接终止四次握手 TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用select改进第八章点对点聊天程序 16socket编程(十一) 套接字I/O超时设置方法 用select实现超时 read_timeout函数封装 write_timeout函数封装 accept_timeout函数封装 connect_timeout函数封装 17socket编程(十二) select限制 poll 18socket编程(十三) epoll使用 epoll与select、poll区别 epoll LT/ET模式 19socket编程(十四) UDP特点 UDP客户/服务基本模型 UDP回射客户/服务器 UDP注意点 20socket编程(十五) udp聊天室实现 21socket编程(十六) UNIX域协议特点 UNIX域地址结构 UNIX域字节流回射客户/服务 UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间通信介绍(二) 死锁 信号量 PV原语 用PV原语解决司机与售票员问题 用PV原语解决民航售票问题 用PV原语解决汽车租赁问题 25System V消息队列(一) 消息队列 IPC对象数据结构 消息队列结构 消息队列在内核中的表示 消息队列函数 26System V消息队列(二) msgsnd函数 msgrcv函数 27System V消息队列(三) 消息队列实现回射客户/服务器 28共享内存介绍 共享内存 共享内存示意图 管道、消息队列与共享内存传递数据对比 mmap函数 munmap函数 msync函数 29System V共享内存 共享内存数据结构 共享内存函数 共享内存示例 30System V信号量(一) 信
Linux操作和编程基础是指针对Linux操作系统进行的一系列学习,主要包括Linux基础操作、Linux系统管理、Shell编程、C语言编程等方面。Linux是一种开源的操作系统,广泛应用于服务器、嵌入式系统、移动设备等领域。学习Linux操作和编程基础可以帮助学生掌握Linux操作系统基本原理和应用,提高系统管理和编程能力。 Linux基础操作包括Linux命令的基本使用、文件系统的管理、进程管理和网络管理等;Linux系统管理包括用户管理、文件权限管理、系统服务管理等;Shell编程包括Shell脚本的编写、流程控制和函数的使用等;C语言编程包括C语言的基本语法、数据结构和文件操作等。 在Linux操作和编程基础学习中,学生需要掌握Linux操作系统基本命令和操作,了解Linux系统管理的基本原理和方法,掌握Shell编程和C语言编程的基本语法和应用。此外,还需要掌握相关工具和设备的使用,例如Linux系统、开发工具、编译器、调试器等。 Linux操作和编程基础的学习可以通过多种形式进行,例如课堂教学、网络课程、实验课程等。在学习中,需要注重实践和应用,通过实际操作和实践项目,掌握相关技术和方法,提高实践能力和创新精神。 总之,Linux操作和编程基础是一种重要的学习内容,可以帮助学生掌握Linux操作系统基本原理和应用,提高系统管理和编程能力,具备解决实际问题和独立开发的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡蓝色的经典

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值