socket(套接字) :是用于不同主机间的通信的一套API
指定主机的ip地址和端口号:
ip地址用于唯一标识网络设备
端口号主要用于区分主机上的不同应用
建立点对点(应用对应用)的虚拟数据通道
socket主要有两种类型:TCP (传输控制协议) 和 UDP(用户数据报协议)
TCP:是可靠的传输 是基于数据流的协议 服务器等待客户端的连接
tcp/ip 三次握手四次挥手
UDP:不可靠的传输
socket(socket . AF_INET //选择使用IPV4地址家族
, socket . SOCK_STREAM //选择使用TCP协议
)s;
s.blind ( " ip地址 ", 端口号); //关联主机上的一个网卡和端口上 blind("0.0.0.0",2000)
s.listen()//置为监听状态 等待客户端的连接
s.accpet ( ) //接受客户端的连接
服务器端实现:
1,建立socket套接字
2,绑定套接字(指定ip和端口号)
3,listen(进入监听状态)
4,accept接受客户端请求
5,收发数据
5,关闭套接字
客户端实现
1,建立socket套接字
2,connect连接服务器套接字(指定服务器ip和端口号)
3,收发数据
4,关闭套接字
事务是指要做的或所做的事情。事务是恢复和并发控制的基本单位。
进程是资源分配的最小单位,线程是CPU调度的最小单位:
1.线程在进程下行进
2.一个进程包含多个线程
3.进程间不会相互影响,线程间影响很大
c++中四个内存区域:
1.代码区:存放二进制代码,操作系统管理。
2.全局区:存放静态变量和全局变量以及常量。
3.栈区:存放函数参数,局部变量等。
4.堆区:由程序员分配和释放。
引用:必须要初始化(数据类型 &别名=原名) 一旦初始化就不可以更改了
计算机网络模型:
OSI七层模型:
应用层---表示层---会话层---传输层---网络层---数据链路层---物理层
SMTP --- FTP --- DNS --- HTTP --- DDS
IPV4 --- IPV6 --- TCP --- UDP
IP协议 --- ICMP协议 ---ARP协议
tcp/ip五层模型:
应用层---传输层---网络层---数据链路层---物理层
tcp/ip四层模型:
应用层---传输层---网络层---网络接口层
进程:资源分配的最小单位(基本单位)
线程:CPU调度的最小单位(基本单位)