ipc

  1     进程间通讯
  2 
  3 本地
  4     有亲缘关系的进程
  5     管道:
  6         特色:
  7             必需要凑齐读写双方
  8         命名管道(没有亲缘关系的进程也能够进程通讯)
  9             man 7 fifo    
 10             mkfifo(3);
 11         匿名管道
 12             man 7 pipe
 13             pipe(2);    
 14 
 15     能够用于没有亲缘关系的进程
 16     sysV IPC(XSI)
 17     
 18     ipcs
 19 
 20     第一步
 21         获取同一个key值    ftok();
 22     第二步
 23         经过同一个key值获得同一个实例 xxxget();
 24     第三步
 25         进行通讯xxxop();
 26     第四步
 27         销毁实例 xxxctl();
 28 
 29     消息队列    
 30     共享内存
 31     信号量数组
 32         
 33 mmap(2);
 34 
 35 网络
 36     ip地址
 37         点分十进制----》整型
 38         inet_pton();
 39 
 40     端口
 41         标识惟一进程
 42         周知端口:01024
 43         用户定义:1024 44 
 45     七层网络模型
 46     物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
 47 
 48     四层网络模型(tcp/ip)    
 49     链路层    网络层    传输层    应用层
 50     
 51 跨主机传输面临的问题:
 52     1.数据类型字节个数差异
 53     <stdint.h>
 54         int32_t
 55         int64_t
 56     2.字节序
 57         大端存储
 58         小端存储    
 59         本地字节序---》网络字节数
 60                 htons();
 61                 htonl();
 62         网络----》本地
 63                 ntohs();
 64                 ntohl();
 65     3.结构体对齐
 66         struct {
 67 
 68         }__attribute__((packed));        
 69 
 70 ipv4地址的划分
 71     ip地址=网络号+主机号
 72     A        1byte+3byte    
 73             0开头
 74             0.0.0.0 ~ 127.255.255.255
 75             0.0.0.0---->任意地址
 76             127.0.0.1--->回环测试地址
 77         子网掩码
 78             255.0.0.0
 79     B        2byte+2byte    
 80             10开头
 81             128~192
 82         子网掩码
 83             255.255.0.0
 84     C        3byte+1byte    
 85             110开头
 86             192~223
 87         子网掩码
 88             255.255.255.0
 89     D        组播地址
 90             1110
 91             224~239    
 92     E        保留
 93 
 94     
 95 man 7 socket
 96 man 7 ip
 97 man 7 tcp
 98 man 7 udp
 99 man 7 unix
100 
101 主动端
102     先发包的一端
103 
104 被动端
105     先收包的一端
106 
107 1.socket
108     抽象层
109 
110 2.报式套接字
111     端对端 无链接,不可靠
112     主动端                    被动端
113     socket()                socket()
114     //bind()可省            bind()
115     sendto();/recvfrom()        recvfrom()/sendto();
116     close();                close();
117 
118 广播:
119     setsockopt();-->使能广播选项
120 组播/多播:        
121 
122 3.流式套接字
123     点对点    建立链接,可靠
124     被动端                    主动端        
125     socket();                socket();
126     bind();                    
127     listen();                connect();
128     accept();    
129     recv();/read();            send();/write();
130     close();                close();
131

SOCK_STREAM:流式套接字,特色是有序、可靠。有序、双工、基于连接的、以字节流为单位的。数组

可靠不是指不丢包,而是流式套接字保证只要你能接收到这个包,那么包中的数据的完整性必定是正确的。网络

双工是指双方都能收发。socket

基于连接的是指:好比大街上张3、李四进行对话,必定不会说每句话以前都叫着对方的名字。也就是说通讯双方是知道对方是谁的。tcp

字节流是指数据没有明显的界限,一端数据能够分为任意多个包发送。测试

 

SOCK_DGRAM:报式套接字,无连接的,固定的最大长度,不可靠的消息。spa

就像写信,没法保证你发出的信对方必定能收到,并且没法保证内容不会被篡改。若是今天发了一封信,明天又发了一封信,不能保证哪封信先到。你们都能收到这个包,可是发现不是本身的以后就会丢弃,发现是本身的包再处理,有严格的数据分界线。
132 三次握手
133 四次挥手
134 
135 4.本地套接字
136     AF_UNIX
137 
138     man 7 unix    
相关文章
相关标签/搜索