c++笔记4

来源:互联网 发布:爱奇艺网络异常101 编辑:程序博客网 时间:2024/05/21 02:36

------------------------------------------------------------------------------------------
复习昨天的东西:
                                                   
                      /
自动:子进程向父进程发信号(回收子进程的资源
)                                        
               |
信号
:                                
                      /
主动:自己发(必须是自己的进程) 例如: kill 不同用户不能通过消息

                       
其他: ^c alarm
                             /signal()
两个特殊信号
:
                   
处理
:
                     /
信号会打断堵塞: pause ,cin>>, msgrcv()//[读取消息:(等这消息)] 会打断
sleep();

                                                                                                                                                                                                                         
                              /  1.
什么信息都可以传递
:
                              |  2.
两端必需打开

 
多进程间通信
:  | FIFO: mkfifo  |
                              |  3.
读一个少一个(//像一个消息队列
)
                              /  4,
双方都关闭时候,数据丢失


                          msgget(key,IPC_CREATE|0666,0) //
创建消息队列和得到消息队列
               
消息队列  msgrcv() //每个消息是一个结构变量.第一各个是LONG 型的类型.
                          msgsend //
发送消息

  msgctl() //
删除消息队列.
                 

                 makefile: //
一些倚赖关系: 例如
: XXX: ...........................
  <TAB>
注释: #开头注释

$^  
所有用来问
$<  //
$@
第一个依赖文件
自己建立库函数: 例如: g++ -shared  XXX.cc -o lib[XXX](库文件名).so
                                    g++ a.cc -lxxx -L
目录

                LD_LIBRA_PATH
包含库文件所在的路径 (环境变量)
                       
=============================================================================================
第四天: 网络编程
:
=============================================================================================
(1)   GDB: Debug //
调试程序
:
方式
:
gdb +
可执行文件
;
-----------------------------
演示程序: (没什么演示的,主要一些是命令
)
g++ -g a.out
gdb a.out
l  //
每次10行的显示代码
;
l 3,5 //
指定行的代码
:
写下断点的位置
: break piont
break (b) 7 (
行数
)
Breakpoint 1 at 0x8048634//(
内存地址
): file chen.cc, line 7.
info break //
列出已经设置的断点
.
delete break 2//(
断点编号) 删除断点
.
run //
运行
:
print (p) i //
显示变量i的值

pirnt argv[0] //
print 显示变量的值;
p argc=100 //
改变量argc的值
.
step : //
会跟踪到函数中
.
kill //
终止调试程序
.
bt //
往回查找函数调用关系
.
disp +
变量名. //每一步就会显示,此变量的值
.
====================================================================================================
OSI :
七层网络模型
;
物理层: 物理设备
.
数据链路层: 由驱动程序管理. (相临的)物理上联接的机器(同一网断) MAC 地址; 错误检测. [寻址的方式: 广播:(每个终端都可以看到.有兴趣的收.) (同一个网段//距离近
)]
网络层: 不同网络之间的通信. 通过IP 地址寻址. 网关/路由
 
传输层: 端口号(short 类型的 65536个端口) 区分不同`网络程序. 流量控制(不通流量的网卡). 差错控制
.
会话层: 通信的方法
.
表示层: 例如: 整数: 也就是表示数据的不同格式(00 00 00 01 /01 00 00 00 ). //格式的处理工作
.
应用层
:
-----------------------
表示层: e-mail 其他文字是7,汉字: 8
.  
--------------------------------
TCP/IP

APPLICATION  //
透明
                /
TRANSPORT  //
透明  传输层;(点对点)   | 这三层能够操作
.
INTERNET //
透明 网络层
.             /
NETWORK INTERFACE //
数据链路层
.
Physical //
物理层


------------------------------
IP
协议:
虚拟的包, 打成小包
.10K,10K,..... =100K
---------------------------------------
IP
地址
:
192.168.0.23 //
点分十进制
.
[192.168.0].23
前面一样的部分是网络地址,最后的是主机地址
.
IP
地址是4个字节 因此可以用一个LONG 型的数据表示IP 地址.//叫做内部格式
.
A 0xxxxxxx
三个不同
. (10.0.0.1)    [0-----128]
B 10xxxxxx
两个字节不同 65536 个计算机
.[129---191]
C 110xxxxx 192  
最多256-1(0)-1(256)=254个网络
   
D
多播地址
.
E
保留地址
.
------------------------
子网掩码 : 区分网络地址和主机地址. 通过子网掩码把网络地址分出来
.

---------------------------------------------------
128.211.[255.255] //
表示广播地址
.
255.255.255.255 //
本网的广播地址
.
127.0.0.1 //
表示本机地址
.
---------------------------------------------------
IPV6 :
UDP:
用户数据报协议
.
TCP:
特点
:  
1.
传输控制协议,面向联接的
.
2.
可靠的
.
3.
点对点的
.
4.
全双工的
.
3
次握手. //保证双方都能够联接
.
---------------------------------------------------
socket:
套接字.