• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
longaotian
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  二阶段

1 2 下一页
day5 - udp模拟tcp

摘要:​ udp模仿tcp类似于socket实现tcp的功能(单方向),比如三次握手,四次挥手,超时重传快速重传等等。 模拟TCP的功能 三次握手 四次挥手 发送端要带有计时器,要实现RTT估计和RTO(重传计时器)估计。RTT如下 SampleRTT某报文段被发出到对该报文段的确认被收到之间的时间量 E 阅读全文
posted @ 2021-08-09 22:27 longaotian 阅读(409) 评论(0) 推荐(0)
day4 - udp和tcp的区别

摘要:序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序 阅读全文
posted @ 2021-08-08 20:56 longaotian 阅读(139) 评论(0) 推荐(0)
day3 – 心跳包和TCP

摘要:心跳包的实现思路: 客户端连接上服务端后,在服务端会维护一个在线客户端列表。客户端每隔一段时间,向服务端发送一个心跳包,服务端受收到包以后,会更新客户端最近一次在线时间。一旦服务端超过规定时间没有接收到客户端发来的包,则视为掉线。 代码: 客户端每隔一段时间,发送一个心跳包: var timer = 阅读全文
posted @ 2021-08-08 20:55 longaotian 阅读(343) 评论(0) 推荐(0)
day2 – udp聊天室

摘要:UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机 阅读全文
posted @ 2021-08-08 20:54 longaotian 阅读(96) 评论(0) 推荐(0)
day1 – upd

摘要:1. 什么是TCP/IP、UDP? \2. Socket在哪里呢? \3. Socket是什么呢? \4. 你会使用它们吗? 什么是TCP/IP**、UDP****?** ​ TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议 阅读全文
posted @ 2021-08-08 20:52 longaotian 阅读(92) 评论(0) 推荐(0)
day13 – 钩子和服务

摘要:远程线程注入dll卸载 FreeLibraryAndExitThread 将已加载的动态链接库(DLL)的引用计数减一,然后调用 ExitThread终止调用线程。该函数不返回。 void FreeLibraryAndExitThread( HMODULE hLibModule, DWORD dwE 阅读全文
posted @ 2021-08-08 20:50 longaotian 阅读(87) 评论(0) 推荐(0)
day12 – 补课

摘要:MFC DLL 规则DLL 规则DLL也叫常规DLL - 导出的接口是标准的,可以给SDK,MFC使用 共享规则DLL 在DLL里任何使用MFC函数的第一行代码都需要加入如下代码: // 切换资源的模块句柄 AFX_MANAGE_STATE(AfxGetStaticModuleState()); 静 阅读全文
posted @ 2021-08-08 20:49 longaotian 阅读(52) 评论(0) 推荐(0)
day11 – c线程和mfc线程

摘要:1 为什么要使用ini或者其它(例如xml,json)配置文件? 如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序发布后还能根据需要进行必要的配置;配置文件有很多如INI配置文件,XML配置文件, 阅读全文
posted @ 2021-08-08 20:48 longaotian 阅读(56) 评论(0) 推荐(0)
day10 – 远程线程注入

摘要:CreateRemoteThread VirtualAllocEX 做的这个例子首先是创建了一个MFC 对话框程序,然后自己创建了一个 带有导出函数 (简单的减法) 的DLL , 这个Calc按键就是调用自己DLL里面的减法函数 计算1 – 1, 其次创建一个拥有能够修改进程中某函数的入口代码功能的 阅读全文
posted @ 2021-08-08 20:46 longaotian 阅读(78) 评论(0) 推荐(0)
day9 – 同步

摘要:windows支持4种类型的同步对象,可以用来同步由并发运行的线程所执行的操作: 临界区 互斥量 事件 信号量 MFC在名为CCriticalSection、CMutex、CEvent和CSemaphore的类中封装了这些对象。下面分别对这些同步对象进行介绍。 临界区 最简单类型的线程同步对象就是临 阅读全文
posted @ 2021-08-08 20:44 longaotian 阅读(81) 评论(0) 推荐(0)
day8 – 线程的创建和退出

摘要:概念区分 程序 – 磁盘上的可执行文件 进程 – 程序执行代码所需资源的集合, 不活泼的,懒惰的 线程 – 程序执行代码的最小单位, 活泼的,勤奋的 线程的运行(调度)原理 cpu时间切片 线程的创建 createThread ExitThread 第一种AfxBeginThread() 用AfxB 阅读全文
posted @ 2021-08-08 20:41 longaotian 阅读(96) 评论(0) 推荐(0)
day7 – 补课

摘要:以下简单的控制台应用程序获取正在运行的进程列表。首先,该GetProcessList函数使用CreateToolhelp32Snapshot获取系统中当前正在执行的进程的快照,然后使用Process32First和Process32Next遍历快照中记录的列表。为依次在每个过程中,GetProces 阅读全文
posted @ 2021-08-08 20:39 longaotian 阅读(40) 评论(0) 推荐(0)
day6 – 管道和进程遍历

摘要:createpipe 创建一个匿名管道,并将句柄返回到该管道的读取和写入端。 BOOL CreatePipe( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize ); 阅读全文
posted @ 2021-08-08 20:37 longaotian 阅读(71) 评论(0) 推荐(0)
day5 – 进程间通信

摘要:进程间通信 WM_COPYDATA 数据流向是单向的,不推荐携带大量数据。效率低下,因为他需要通过高2g物理内存进行两次拷贝。 SendMessage(hwnd,WM_COPYDATA,wParam,lParam); 其中,WM_COPYDATA对应的十六进制数为0x004A wParam设置为包含 阅读全文
posted @ 2021-08-08 20:34 longaotian 阅读(56) 评论(0) 推荐(0)
day4 – 跨进程使用句柄和进程间操作内存

摘要:openprocess getwindowthreadprocessid findwindow getcurrentprocess 0xffffffff 伪句柄 duplicatehandle writeprocessmemery virtualprotectex 内存分页 跨进程使用句柄 获取进程 阅读全文
posted @ 2021-08-08 20:32 longaotian 阅读(181) 评论(0) 推荐(0)
day3 – 进程的创建和退出

摘要:创建进程 •Winexec UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow ); lpCmdLine 要执行的应用程序的命令行(文件名加上可选参数)。如果lpCmdLine参数中的可执行文件名称不包含目录路径,则系统按以下顺序搜索可执行文件: 1.应用程序 阅读全文
posted @ 2021-08-08 20:29 longaotian 阅读(115) 评论(0) 推荐(0)
day2 – def导出,dllmain和dll劫持

摘要:模块定义 (.def) 文件是包含一个或多个描述 DLL 各种属性的 Module 语句的文本文件。如果不使用 __declspec(dllexport) 关键字导出 DLL 的函数,则 DLL 需要 .def 文件。 .def 文件必须至少包含下列模块定义语句: 文件中的第一个语句必须是 LIBR 阅读全文
posted @ 2021-08-08 20:28 longaotian 阅读(183) 评论(0) 推荐(0)
day1 – 静态库和动态库

摘要:静态库 使用功能但是不提供源码的方式一:提供头文件和obj文件 obj文件的使用方式: 1) 直接拖到VS工程 2) 在 链接器->输入->附加依赖项 中添加 使用obj,同时兼容c和c++的做法 #ifdef __cplusplus extern "C" { #endif int Add(int 阅读全文
posted @ 2021-08-08 20:26 longaotian 阅读(88) 评论(0) 推荐(0)
day13 – 补课

摘要:概要: 对话框: ​ App – 负责整个程序的初始化,包括对话框的创建,InitInstance Dialog – 对话框 单文档: App – 负责整个程序的初始化,包括主窗口的创建,doc的创建,InitInstance MainFrame – 负责非客户区(菜单,状态栏,工具栏,快捷键, 视 阅读全文
posted @ 2021-08-08 18:47 longaotian 阅读(36) 评论(0) 推荐(0)
day12 – 滚动截图

摘要:CPoint ptWnd; GetCursorPos(&ptWnd); CWnd* pWnd = WindowFromPoint(ptWnd); pWnd->SetForegroundWindow(); CDC* pDc = pWnd->GetDC(); int nBpp = pDc->GetDev 阅读全文
posted @ 2021-08-08 18:46 longaotian 阅读(140) 评论(0) 推荐(0)

1 2 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3