async_read_some读到数据就会直接回调设置的函数,不管数据是否已经读完。所以在这里会遇到一个非常棘手的问题,如何确定数据已经读取完毕?常见的方式是在数据的后面添加标志位,例如添加/r/n/r/n作为结束符,然后停止读取async_read_some的基本原理是往IOCP的队列里面添加一..
分类:
其他好文 时间:
2017-08-08 16:40:13
阅读次数:
148
flag寄存器: ZF=1表示计算结果为0,反之 PF = 0表示计算结果二进制表示中1的个数为奇数,反之 SF = 0表示计算结果为正,反之 CF为1,在加法中表明结果出现仅为,在减法中表明结果出现借位,反之 OF = 1表示计算结果溢出,反之 对于无符号数,CPU用CF位记录计算结果是否产生进位 ...
分类:
其他好文 时间:
2017-08-06 22:56:46
阅读次数:
169
标志(Flag)是用于反映指令执行结果或控制指令执行形式,是汇编语言程序设计中必须特别注意的一个方面。许多指令执行之后将影响有关的标志位,同时不少指令的执行要利用某些标志。因此我们在学习使用汇编语言的过程中必须了解标志位。 ...
分类:
其他好文 时间:
2017-08-05 15:39:28
阅读次数:
166
一、select 1.起源 select最早于1983年出现在4.2BSD中(BSD是早期的UNIX版本的分支)。 它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操 ...
分类:
其他好文 时间:
2017-08-02 22:17:17
阅读次数:
147
首先列一下,sellect、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续 ...
分类:
编程语言 时间:
2017-07-27 16:35:54
阅读次数:
230
线程的释放方式有两种:一种是线程在运行完成后自动释放,一种是手动释放。 无论是那种释放,都应该在线程停止后进行释放。 然而线程的停止也有两种情况:一种是不需要设置标志位,直接完成;一种是由于execute方法中做了循环,需要设置标志位才能停止。 如果线程已经停止并且自动释放,再去手动停止,就会报错。 ...
分类:
编程语言 时间:
2017-07-24 20:21:32
阅读次数:
206
在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手如何把全双工的连接关闭掉、滑动窗体是怎么数据传输的、TCP的flag标志位里RST在哪些情况下出现。以下我会画一些尽量简化的图来表达清楚上述几点。之后再了解下RST攻击是怎么回事。 1、TCP是什么? TCP是在IP网络层之 ...
分类:
其他好文 时间:
2017-07-23 18:16:28
阅读次数:
166
#include <stdio.h>#include <windows.h> int main(){ __asm { CLD //清空标志位DF push 0x1E380A6A //压入MessageBoxA-->user32.dll push 0x4FD18963 //压入ExitProcess- ...
分类:
系统相关 时间:
2017-07-22 22:34:20
阅读次数:
208
Event: 由于每个线程都是独立运行的,但是如果某个线程的运行需要通过另一个线程的运行状态来进行自己的下一步运行操作时。这时就需要event对象来支持这种操作了。它运行线程等待某些时间的发生,初始对象中的信号标志被设置为False。如果有一个线程在等待一个Event对象,如果信号标志位一直是Fal ...
分类:
编程语言 时间:
2017-07-19 20:25:15
阅读次数:
138
event模块event.wait() 等待相当于标志位为False。()内可以传参数数字,为几秒。event.set()给另一个线程传标志位True。 队列 queue和列表类似,但是函数内置了互斥锁,保证了线程安全。是具有线程安全的数据结构。 put传进去,get取出来,取是先进先出的方法,吃了 ...
分类:
编程语言 时间:
2017-07-19 16:19:28
阅读次数:
157