Hyman的博客

你想要什么样的生活,并真正为之努力,你一定会得到它!

网络编程(50)—— 使用poll搭建回声服务端

一、 引言         本文主要介绍在linux中使用poll搭建回射服务端。我们在前面的文章中研究了使用select和epoll搭建服务端的方法。poll的用法和select类似,只不过用来描述操作符集合的是pollfd而非select的fd_set。Poll在Linux 2.5.44版本后...

2016-12-31 12:14:53

阅读数:885

评论数:0

错误处理(三)—— 剪贴板为空。 (异常来自......)

异常类型:System.Runtime.InteropServices.COMException         ErrorCode = -2146823683         这种错误在Excel和Word之间进行复制和粘贴操作时经常出现,主要原因就是操作剪贴板过于频繁,导致里面的内容很多剪贴...

2016-12-30 17:25:24

阅读数:1363

评论数:0

网络编程(49)—— epoll的条件触发和边缘触发

一、条件触发和边缘触发         在《网络编程(21)—— 使用epoll进行IO复用》一文中,我们介绍了在linux平台下使用epoll进行IO复用的方法。本文主要介绍epoll中进行IO复用的两种触发方式:条件触发和边缘触发。 1.1 什么是条件触发和边缘触发?        ep...

2016-12-30 17:15:42

阅读数:1066

评论数:2

错误处理(二)—— Exception from HRESULT: 0x800A03EC

是多少

2016-12-29 13:55:11

阅读数:493

评论数:0

网络编程(48)—— windows平台下的四种线程同步技术(二)

四、内核同步对象—— 互斥(Mutex)         内核线程同步对象包括互斥、信号量和事件,它们使用时存在很多共通之处。下面先介绍在Windows平台利用互斥进行线程的同步。 HANDLE WINAPI CreateMutex( __in_opt LPSECURITY_ATTRIBUTE...

2016-12-29 08:16:46

阅读数:730

评论数:0

网络编程(47)—— windows平台下的四种线程同步技术(一)

一、用户模式和内核模式         Windows操作系统在运行时,存在以下两种模式: 用户模式:是运行应用程序的基本模式,不能访问硬件,且访问的内存的范围也有限制。 内核模式:是操作系统运行的基本模式,可以访问硬件,访问的内存范围无限制。         Windows的程序在运...

2016-12-28 09:01:31

阅读数:902

评论数:0

网络编程(46)—— windows内核对象的两种状态

一、 什么是内核对象?         我们知道进程、线程、文件、互斥、信号量这些都是操作系统级别的资源。我们在使用这些资源时,实际上都是由操作系统进行创建和管理的。操作系统为了管理这些资 源,会在其内部创建一个数据块,也可以理解为一个结构体对象。这个数据块就是内核对象。 二、 内核对象有哪两种状...

2016-12-27 08:52:05

阅读数:407

评论数:0

网络编程(45)—— windows平台下销毁线程的四种方法

原文出自:http://www.cnblogs.com/goalone1985/articles/2126420.html 终止线程运行   若要终止线程的运行,可以使用下面的方法:   • 线程函数返回(最好使用这种方法)。   • 通过调用 ExitThread 函数,线程将自行撤消(最好不...

2016-12-26 08:46:42

阅读数:650

评论数:0

Win32 SDK基础(10)—— 几种常见的Windows消息处理

一 引言         本文主要介绍几种Windows常见的消息的处理,在《Win32 SDK基础(8)—— Windows消息机制》中,我们介绍了WM_CREATE消息的处理,在窗口创建之前,我们利用消息处理函数弹出了一个MessageBox,本文在此基础之上,介绍WM_DESTROY、WM...

2016-12-25 23:35:24

阅读数:1451

评论数:0

用flask开发个人博客(30)—— 用WerkZeug实现密码的加密存储

一 引言         我们在进行用户的注册时,往往需要将用户输入的明文密码加密成密文进行存储。flask中使用WerkZeug模块可实现这一功能。WerkZeug中有两个方法: generate_password_hash(password)和check_password_hash(hash,...

2016-12-24 12:22:08

阅读数:1451

评论数:0

网络编程(44)—— windows平台下创建线程的四种方法(三) 工作者线程和CWinThread线程类管理

四、AfxBeginThread 4.2 工作者线程         工作者线程类似我们之前介绍的用CreateThread创建的线程,它在后台处理数据,和主界面线程共享消息循环。它用AfxBeginThread的重载版本创建,函数原型如下: CWinThread* AfxBeginThre...

2016-12-23 08:37:51

阅读数:1291

评论数:0

网络编程(43)—— windows平台下创建线程的四种方法(二)之用户界面线程

四、AfxBeginThread         在介绍使用AfxBeginThread进行多线程编程之前,我们先介绍下MFC中两种线程的概念,这也是在MFC编程中无法绕过的两种类型的线程 —— 用户界面线程和工作者线程。 4.1 用户界面线程         用户界面线程,顾名思义,它是一种可以...

2016-12-22 08:47:57

阅读数:987

评论数:0

错误处理(一)—— 被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))

原因可能为: 1.目录权限  2.操作频繁 若是权限问题,按如下步骤: 在运行里面输入:  dcomcnfg  在“服务”里找到这三个服务,都去启动  Distributed Transaction Coordinator  Remote Procedure Call (RPC)  Sec...

2016-12-21 09:22:50

阅读数:6002

评论数:8

一张图解释TCP断开连接时的四次握手

2016-12-21 09:15:43

阅读数:774

评论数:0

网络编程(42)—— windows平台下创建线程的四种方法(一)

一、引言        接下来,笔者主要谈下Windows平台下多线程的用法。首先,要强调一点,Windows平台的线程linux中的线程不同,它会伴着主函数的结束而销毁。Windows平台下可用的创建多线程的API共有四个,分别是: (1) CreateThread()         Crea...

2016-12-21 08:11:28

阅读数:475

评论数:0

网络编程(41)—— Linux线程销毁的两种方法

Linux的线程的创建必然会伴随着内存空间的分配,而当线程函数执行完毕时,线程空间同样也不会被自动收回。特别是,Linux线程的销毁和进程也不一样,即使主函数结束,如果不主动回收,线程空间也不会被释放。类似于永远不能被回收的僵尸进程,我们姑且叫这种线程为僵尸线程吧。本文就是介绍回收这种僵尸线程的资...

2016-12-19 12:52:02

阅读数:2467

评论数:1

一张图解释TCP进行连接时的三次握手

2016-12-18 19:54:57

阅读数:775

评论数:0

Win32 SDK基础(9)—— Windows 常用消息大全

一、Windows消息分布 消息范围 说 明 0 ~ WM_USER – 1 系统消息 WM_USER ~ 0x7FFF 自定义窗口类整数消息 WM_APP ~ 0xBFFF 应用程序自定义消息 0xC000 ~

2016-12-18 19:09:44

阅读数:825

评论数:0

Win32 SDK基础(8)—— Windows消息机制

一、 什么是消息         在解释什么是消息之前,我们先讨论一下程序的执行机制问题。大体上说,程序按照执行机制可以分为两类: 第一类是过程驱动。比如我们最早接触编程时写的C程序,又或者单片机程序。这类程序往往预先已经设定好了执行流程,我们执行时只是按部就班的执行; 第二类是事件驱动。事件,相...

2016-12-18 19:02:40

阅读数:578

评论数:0

网络编程(40)—— 使用信号量semaphore进行多进程间的同步

本文主要介绍下在多进程中使用信号量semaphore的方法。在上一文中,我们已经知道semaphore和mutex对临界区访问控制的一个最主要区别就是semaphore可以跨进程使用,而mutex只能在一个进程中使用。我们再来看下sem_init的原型,熟悉决定进程共享或者线程共享的方法: #in...

2016-12-18 14:20:40

阅读数:2018

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭