c语言 socket_raw,c语言用raw socket进行抓包

本文介绍了如何通过DOS命令`netstat`进行端口查看、占用状态检查、进程号查找和结束,展示了在Windows系统中管理网络连接和进程的实用技巧。从基础的端口监听到高级的进程跟踪,为IT管理员和开发者提供操作指南。
摘要由CSDN通过智能技术生成

本机端口查看

打开DOS窗口后,一般我们会先输入“netstat”命令查看简单的统计信息,其中冒号后面的是端口信息:

输入“netstat -nao”命令时可以在最右列显示PID进程序号,以便我们用命令直接结束程序:

输入“netstat -nab”命令可以网络连接、端口占用和程序运行的详细信息

然后用任务管理器看对应的进程。

利用快捷键win+R键打开运行窗口。输入cmd回车打开命令提示符窗口

1:查看本机开放的端口,即已被占用的端口号。  命令:  netstat -an

部分结果列表:

Proto   Local Address           Foreign Address        State

TCP    0.0.0.0:135                0.0.0.0:0                     LISTENING

TCP    0.0.0.0:3473              0.0.0.0:0                     LISTENING

TCP    0.0.0.0:8009              0.0.0.0:0                     LISTENING

Local Addresss 对应的这列,“:”后边即为以开放的端口号。

7174c99d84a289a0d1ef0564404863ae.png

2:查看某个端口号是否被占用  netstat -ano|findstr  "3306" (注意双引号前面有个空格)

f7c4518cab7beec4260303245c0d630d.png

可以看到,输入端口号“3306”和"51016"都没有返回任何值,说明这两个端口没有被占用,

而输入端口号”52475“后看到,出现了2行返回结果,说明这个端口被占用了

3:查看进程号对应的进程名称  tasklist|findstr ”9400“

3a3eadc497890e0c8bdba2d7e59ca8b8.png

注意:这里输入的不是端口号,而是后面显示的端口号对应的进程号

可以看到,输入进程号9400后,显示了该进程号对应的进程名,即360se.exe

4:结束进程  tskill 360se.exe

tskill 进程名/进程号

也可以直接在任务管理器中结束,打开任务管理器快捷键:ctrl+shift+ESC  命令:

小知识:Netstat命令用法命令格式:

Netstat -a -e -n -o -s-an-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。

-e 表示显示以太网发送和接收的字节数、数据包数等。

-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。

-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。

-s 表示按协议显示各种连接的统计信息,包括端口号。

-an 查看所有开放的端口

delete和析构函数间的关系及细节

#include #include using namespace std; class shape { public: char x; shape(char m) { x=m; cout << "构造"<

当有那句delete b时,运行结果如图,981379eb82930aa02df08fe317895a6d.gif也就是说delete b之后执行了shape的析构函数,而按了任意键之后,会立马闪出一个析构a来,这说明程序执行完成后,即在a所在的作用域结束后,执行了shape的析构函数

而当没有delete b时,运行结果如图e93c95885a58f219b7bb8702aeb68292.gif,这说明暂时没有执行b的shape析构函数,按了任意键后,跟上面一样,也只会闪出一个析构a来,没有析构b

这说明,直接声明的对象,比如shape a,即在栈上面的对象,所在作用域结束后,会自动执行析构函数,而new出来的在堆上的对象,不调用delete,即使它所在的作用域已经结束,也不会调用析构函数,根据另外一篇文章内所述,可能程序结束后,OS(操作系统)会回收其堆内占用的内存,这样就不知道会干什么,会不会调用析构了。

delete详解:首先调用析构函数,完成类成员的释放,比如类成员有vector也指向了堆上的内存,就需要在析构函数中同样使用delete释放这块内存,或者说它自身处于一个容器当中,就需要在这个容器中erase它

然后再free掉整个对象的内存;

delete b过后,b仍然指向改内存,即地址不变,但指针可能为悬垂指针,访问它可能带来意想不到的结果,也可能正确访问,不确定,所以建议delete后,把指针设置成NULL,后面也可根据指针是否为NULL判断是否可用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值