关闭

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

一、 引言         本文主要介绍在linux中使用poll搭建回射服务端。我们在前面的文章中研究了使用select和epoll搭建服务端的方法。poll的用法和select类似,只不过用来描述操作符集合的是pollfd而非select的fd_set。Poll在Linux 2.5.44版本后被epoll取代,本文只为研究其用法。 二、函数原型 poll的函数原型如下: #includ...
阅读(648) 评论(0)

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

异常类型:System.Runtime.InteropServices.COMException         ErrorCode = -2146823683         这种错误在Excel和Word之间进行复制和粘贴操作时经常出现,主要原因就是操作剪贴板过于频繁,导致里面的内容很多剪贴板响应不过来。解决方法是在每次复制之前先清空剪贴板即可: System.Windows.Form...
阅读(950) 评论(0)

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

一、条件触发和边缘触发         在《网络编程(21)—— 使用epoll进行IO复用》一文中,我们介绍了在linux平台下使用epoll进行IO复用的方法。本文主要介绍epoll中进行IO复用的两种触发方式:条件触发和边缘触发。 1.1 什么是条件触发和边缘触发?        epoll进行IO复用的基本原理我们可以概括如下: 1、 使用epoll_create()创建用来保存e...
阅读(731) 评论(2)

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

是多少...
阅读(296) 评论(0)

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

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

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

一、用户模式和内核模式         Windows操作系统在运行时,存在以下两种模式: 用户模式:是运行应用程序的基本模式,不能访问硬件,且访问的内存的范围也有限制。 内核模式:是操作系统运行的基本模式,可以访问硬件,访问的内存范围无限制。         Windows的程序在运行时,往往频繁的在用户模式和内核模式之间切换。以多线程程序为例,我们所创建的线程属于操作系统,在创建线...
阅读(710) 评论(0)

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

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

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

原文出自:http://www.cnblogs.com/goalone1985/articles/2126420.html 终止线程运行   若要终止线程的运行,可以使用下面的方法:   • 线程函数返回(最好使用这种方法)。   • 通过调用 ExitThread 函数,线程将自行撤消(最好不要使用这种方法)。   • 同一个进程或另一个进程中的线程调用 TerminateThre...
阅读(433) 评论(0)

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

一 引言         本文主要介绍几种Windows常见的消息的处理,在《Win32 SDK基础(8)—— Windows消息机制》中,我们介绍了WM_CREATE消息的处理,在窗口创建之前,我们利用消息处理函数弹出了一个MessageBox,本文在此基础之上,介绍WM_DESTROY、WM_SYSCOMMAND、WM_QUIT、WM_SIZE等其它常见的Windows消息。首先,我们引入在...
阅读(788) 评论(0)

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

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

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

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

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

四、AfxBeginThread         在介绍使用AfxBeginThread进行多线程编程之前,我们先介绍下MFC中两种线程的概念,这也是在MFC编程中无法绕过的两种类型的线程 —— 用户界面线程和工作者线程。 4.1 用户界面线程         用户界面线程,顾名思义,它是一种可以管理UI界面的线程。它含有自己的消息循环,可以处理UI界面的各种消息。最常见的用户界面线程,就是...
阅读(776) 评论(0)

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

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

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

...
阅读(673) 评论(0)

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

一、引言        接下来,笔者主要谈下Windows平台下多线程的用法。首先,要强调一点,Windows平台的线程linux中的线程不同,它会伴着主函数的结束而销毁。Windows平台下可用的创建多线程的API共有四个,分别是: (1) CreateThread()         CreateThread是Windows的API函数,提供操作系统级别的创建线程的操作,且仅限于工作者线...
阅读(313) 评论(0)
48条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:368700次
    • 积分:6476
    • 等级:
    • 排名:第3932名
    • 原创:292篇
    • 转载:17篇
    • 译文:1篇
    • 评论:60条
    其它平台
    博客专栏