翻译了一下 netstat –help 的提示信息
1 | zzz@lengzzz:~$ netstat --help |
翻译了一下 netstat –help 的提示信息
1 | zzz@lengzzz:~$ netstat --help |
exec系列系统调用有六个,本文讲解了它们之间的区别
exec系列系统调用有六个,通过后缀字母的含义很好记忆:
l
代表参数是一个list(用NULL结尾的可变参数),v
代表参数是一个vector(char* const argv[])。p
代表调用时可以只提供文件名,只要该文件在系统变量PATH中e
代表为新进程提供了一个新的环境
原型如下:
1 |
|
上面的都是c函数,只有execve是系统调用。另外多出的一个execvpe是linux特有的,只有glibc库才有
1 |
|
unix网络编程中的图给出了他们之间的关系:
功能:聊天室服务器,可用telnet直接连接到服务器,发送消息则在聊天室内的所有用户都能看见。使用select实现
功能:聊天室服务器
可用telnet直接连接到服务器,发送消息则在聊天室内的所有用户都能看见。
使用select实现
1 |
|
unix网络编程中常用头文件、结构体、函数
<sys/socket.h>
:
socket, bind, connect等函数定义, 所有socket程序必须要包含, 另外定义了一些通用的套接字地址结构, 如struct sockaddr.
<netinet/in.h>
:
struct sockaddr_in, struct sockaddr_in6等结构体的定义, 定义了ip协议中的套接字地址结构. 另外有些基础类型定义in_addr_t, in_port定义. hton, ntoh 字节序转换函数.
<arpa/inet.h>
:
inet_pton, inet_ntop, ip地址转换函数.
1 | /* from <netinet/in.h> */ |
《unix网络编程》上的定义:
1 | struct in_addr { |
1 | struct sockaddr { |
1 |
|
1 |
|
这两个函数传入(或传出)的ip地址结构体为struct in_addr等结构体
传出的字符串buffer大小在<netinet/in.h>中定义:
1 |
1 |
|
对于IPV4一般需要初始化三个字段:sin_family、sin_addr、sin_port。
1 | bzero(&svraddr, sizeof(svraddr));/* 注意清零 */ |
1 | svrsock = socket(AF_INET, SOCK_STREAM, 0);/* 参数3可以推断得出 */ |
1 | if (bind(svrsock, (SA*)&svraddr, sizeof(svraddr)) == -1) |
1 | if (connect(svrsock, (SA*)peeraddr, sizeof(peeraddr)) == -1) |
1 | if (listen(svrsock, 64) == -1) |
1 | int cltsock; |
1 | struct sockaddr_in addr; |
1 | char cltaddrstr[INET_ADDRSTRLEN]; |
1 | if (inet_pton(AF_INET, "192.168.1.1", &cltaddr.sin_addr) == -1) |
电脑应用low技巧
没办法,人家太low了,不像蛋蛋”手熟尔”,所以只能记下了
netplwiz 实现自动登录;
msconfig 设置启动项目;
at 22:00 shutdown -s 定时关机 如果取消关机则需 shutdown/a即可;–蛋蛋教我的是 直接 shutdown 7200 -t -s
ALT +TAB 切换窗口;
gpedit.msc 设置禁止访问控制面板 & 其他…..如限制用户访问某个磁盘分区;
全选文件可以批量修改文件名,用文件扩展名批量修改器也可修改扩展名;
删除文件时不再出现确认对话框& 进入回收站的文件直接彻底删除 :右击回收站 属性设置即可;
使用EasyRecovery找回丢失的文件 高强度文件夹加密大师可以加密重要文件;
c:用户../temp 清除系统临时文件夹;
格式刷;
word 中,选择 审阅->批注 可以增添批注;
审阅他人文档时,采用修订的方法可以既修改也让他人看到修改了哪些内容 :切换到审阅选项卡,单击修订,修改部分会以红色显示;
批量下载qq相册中的相片:批量下载器;
Quartus II开发工具的基本操作
1 新建工程 New project wizard
2 file-new 编写源码,保存源文件.选择Processing->start->start analysis&synthesis 或者单击对应图标
3 Tools-Netlist Viewers – RTL Viewer 查看生成综合后的电路结构图
4功能仿真: Processing->Generate Functional Simulation Netlist产生功能网络表;
File->new 新建VWF向量波形文件. 右击 Insert ->Insert Node or Bus 加入结点或总线,进行结点或总线信号的查找,选择
需要仿真观察的信号,进行信号设置;
保存文件;
单击菜单选项进行仿真设置,如
单击工具按钮进行功能仿真.
5时序仿真 需要对整个工程进行全编译,,编译无误后
修改为timing模式
单击,进行时序仿真.
Quartus II 与ModelSim联合开发
源文件 测试文件编写完毕;
单击https://hzzz.lengzzz.com/blog/wp-content/uploads/2014/01/QQ%E6%88%AA%E5%9B%BE20140105164431.png![image_1bl0d44n11p6r1aob1guvj9gp44.png-0.2kB][8],选择EDA Tools Setting -> Simulation进行相关仿真设置.
设置完毕后,进行工程编译,无误后选择Tools ->Run EDA Simulation tool ->EDA RTL simulation 调用modelsim进行仿真.
ppp协议详解
ppp协议分为几个部分:LCP(链路控制协议)、NCP(网络控制协议)、认证协议(包括PAP协议和CHAP协议)、另外还有CCP(压缩控制协议)。
如下图所示:
ppp是一个分层结构。在底层,它能使用同步媒介(如ISDNH或同步DDN专线),也能使用异步媒介(如基于Modem拨号的PSTN网络)。
在数据链路层,PPP在链路层建立方面提供了丰富的服务,这些服务以LCP协商选项的形式提供。
在上层,PPP通过NCPs提供对多种网络层协议的支持。PPP对于每一种网络层协议都有一种封装格式来区别它们的报文。
2.帧结构
基本的ppp帧如下:
标记用于标记一个ppp帧的开始和结束。
地址域和控制域为固定值(0xff,0x03)
协议的可选值如下:
1 | 协议代码 对应协议 |
3.建立连接
PPP协商过程分为几个阶段:Dead阶段,Establish阶段,Authenticate阶段,Network阶段和Termintate阶段,在不同的阶段进行不同协议的协商.只有前面的协商出现结果后,才能转到下一个阶段,进行下一个协议的协商.
在建立连接时需要用到LCP和NCP协议(IPCP)。
这些协议都会用到编码和ID字段(其实也可以这样分,地址、协议、控制三个字段属于ppp协议,后面的属于LCP或NCP或IP自己的协议)
编码字段的含义如下:
1 | 编码值 对应含义 |
传输IP报文时,没有编码和ID字段,在协议字段之后直接就是IP报文。
4.验证
PAP验证,没啥好说的,客户端向服务器发送明文用户名和密码,服务器发回Acknowledge或Not Acknowledge
CHAP验证,比PAP验证安全,不明文发送密码。具体流程是这样:
更明了的图如下: