2018-06-23 20:52
⁄ 工业·编程
⁄ 共 122字
new是运算符,malloc()是一个库函数;
new会调用构造函数,malloc不会;
new返回指定类型指针,malloc返回void*指针,需要强制类型转换;
new会自动计算需分配的空间,malloc不行;
new可以被重载,malloc不能。
c++, 区别阅读全文
2018-06-16 20:47
⁄ 工业·编程
⁄ 共 469字
1)空间大小:栈的内存空间是连续的,空间大小通常是系统预先规定好的,即栈顶地址和最大空间是确定的;而堆得内存空间是不连续的,由一个记录空间空间的链表负责管理,因此内存空间几乎没有限制,在32位系统下,内存空间大小可达到4G
2)管理方式:栈由编译器自动分配和释放,而堆需要程序员来手动分配和释放,若忘记delete,容易产生内存泄漏。
3)生长方向不同:对于栈,他是向着内存地址减小的方向生长的,这也是为什么栈的...
c++阅读全文
2018-06-09 05:47
⁄ 工业·编程
⁄ 共 1086字
抓包
先从熟悉的下手,HTTP,FTP。
封装包
自己封装包,和现有协议通信。TCP/IP协议作为一个底层协议,不仅可以编写聊天程序,很多高层协议都是基于TCP/IP编写的。
自己造轮子,这样也有助于理解其它协议,比如连接、查询MySQL(用Socekt函数而不是库函数),自己封装一个memched函数库…
以前我大学时用perl发送“飞鸽传书”包,经常上课的时候同学们集体收到弹出信息,却不知道发送者是谁,很有成就感。如果你做已经事没有...
TCP, 网络编程阅读全文
2018-06-02 05:40
⁄ 工业·编程
⁄ 共 1500字
1.招聘的顺口溜而已。其实大多数需要的是熟悉socket编程。
tcp/ip是协议族,协议定义的东西包括报文格式,流控,控制块fsm之类。
socket是个编程界面,不用管什么syn/ack/rst/sequence number之类。
(以前还有所谓传输界面编程,另一组api,淘汰了)socket编程并不太关心协议是什么样,stream可以不是tcp,dgram可以不是udp的。当然现在基本没有别的协议在用了。当然如果实现socket库(估计没人重新发明轮子),
或开发路由器...
TCP, 网络协议阅读全文
2018-05-26 05:35
⁄ 工业·编程
⁄ 共 1235字
三次握手,所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。
第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。
第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1...
TCP, 网络协议阅读全文
2018-05-19 22:41
⁄ 工业·编程
⁄ 共 458字
一 混杂模式基本概念
一般情况下,网卡往往只会接收目的地址是它的数据包而不会接收目的地址不是它的数据包。
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下,网卡只把发给本机的包(包括广播包)传递给上层程序,其他的包一律丢弃。
混杂模式就是指网卡能接受所有通过它的数据流,无论是什么模式、什么地址的。当网卡处于这种“混杂”模式时,它对所有遇到的每一个数据帧都产生一个硬件中断,以提醒...
网络编程阅读全文
2018-05-12 22:27
⁄ 工业·编程
⁄ 共 3628字
基本功能就是来捕获所有流经本网卡的数据包。
实现流程:
查找网络设备
打开网络设备
查找设备信息
输入过滤规则
编译输入规则
设置输入规则
开始捕获数据包
调用数据包分析模块
输出MAC,IP,协议以及数据帧
结束
具体实现代码:
#include <stdio.h>
#include <pcap.h>
#include <time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h&g...
Libpcap阅读全文
2018-05-05 22:18
⁄ 工业·编程
⁄ 共 4930字
1.获取网络接口
char * pcap_lookupdev(char * errbuf) //上面这个函数返回第一个合适的网络接口的字符串指针,如果出错,则errbuf存放出错信息字符串,errbuf至少应该是PCAP_ERRBUF_SIZE个字节长度的
int pcap_lookupnet(const char * device, bpf_u_int32 * netp, bpf_u_int32 * maskp, char * errbuf) //可以获取指定设备的ip地址,子网掩码等信息 //netp:传出参数,指定网络接口的ip地址 ...
Libpcap阅读全文
2018-04-29 22:08
⁄ 工业·编程
⁄ 共 1578字
1.Libpcap简介
Libpcap是Packet Capture Libray的英文缩写,即数据包捕获函数库。该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。这个在原始套接子中有提到。
著名的软件TCPDUMP就是在Libpcap的基础上开发而成的。Libpcap提供的接口函数实现和封装了与数据包截获有关的过程。
Libpcap提供了用户级别的网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap可以在绝大多数Linux...
Libpcap, 网络安全阅读全文
2018-04-25 06:29
⁄ 工业·编程
⁄ 共 993字
NetBSD 是一个继承自 BSD 的自由、安全且支持诸多处理器架构的类 Unix 操作系统。其源代码完全开源,开发活跃,应用广泛。NetBSD 项目于 4 月 23 日宣布了 NetBSD 8.0 的第一个发布候选。相较于 7.0 版本,NetBSD 8.0 包含诸多更新。部分显著更新如下:
重制 USB 栈,支持 USB3;
内核内置混音器;
可重现的构建;
在某些支持细粒度内存保护且有合适 ELF 格式的架构(i386、amd64、evbarm、landisk 及 pmax)中默认...
BSD, NetBSD, 操作系统阅读全文