![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
jiangzhuzhu
这个作者很懒,什么都没留下…
展开
-
IOCP模型总结(转)
IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销原创 2010-01-20 07:45:00 · 236 阅读 · 0 评论 -
精通pki网络安全认证技术与编程实现(读书笔记2)
第二章 openssl入门 1.OpenSSL组成:包括SSL协议、密码算法库和应用程序。 (1)SSL协议 SSL协议库是在密码算法库的基础上实现的。利用该库,可以建立一个SSL通信的服务器和客户端。 (2)密码算法库:主要包括公开密钥(非对称)算法,对称加密算法、信息摘要算法、X509数字证书标准、PKCS12个人信息交换语法标准、PKCS7加密消息语法标准、OCSP在线证书状态查询协原创 2011-06-21 18:40:00 · 393 阅读 · 0 评论 -
多线程服务器的适用场合(转)
这篇文章原本是前一篇博客《多线程服务器的常用编程模型》(以下简称《常用模型》)计划中的一节,今天终于写完了。 “服务器开发”包罗万象,本文所指的“服务器开发”的含义请见《常用模型》一文,一句话形容是:跑在多核机器上的 Linux 用户态的没有用户界面的长期运行的网络应用程序。“长期运行”的意思不是指程序 7x24 不重启,而是程序不会因为无事可做而退出,它会等着下一个请求的到来。例如 wget原创 2011-06-18 14:07:00 · 638 阅读 · 0 评论 -
linux 内核链表
list.h/* Author: linux kernel */#ifndef LIST_H#define LIST_H/* * Simple doubly linked list implementation. * * Some of the internal functions ("__xxx") are useful when * manipulati原创 2011-06-15 23:10:00 · 242 阅读 · 0 评论 -
Hashtable查找开源代码
Hashtable.h/* Copyright (C) 2002 Christopher Clark *//* * Copyright (c) 2002, Christopher Clark * All rights reserved. * * Redistribution and use in source and binary forms, with or with原创 2011-06-15 23:05:00 · 700 阅读 · 0 评论 -
select和所线程设计并发服务器的问题(转自China Linux Fans )
<br />各位好,我使用select和多线程设计一个并发服务器,实现对客户端请求的并发处理,这样设想:每当select到一个socket有数据可以读写的时候就创建一个线程进行数据处理,代码如下:<br /> <br />/ *------------------------------------------------------------------------------------------------------- * server.c *转载 2011-05-30 22:57:00 · 917 阅读 · 0 评论 -
关于SO_REUSEADDR的使用说明
<br /> 1. 可以对一个端口进行多次绑定,一般这个是不支持使用的; <br /> 2. 对于监听套接字,比较特殊。如果你定义了SO_REUSEADDR,并且让两个套接字在同一个端口上进行接听,那么对于由谁来ACCEPT,就会出现歧义。如果你定义个SO_REUSEADDR,只定义一个套接字在一个端口上进行监听,如果服务器出现意外而导致没有将这个端口释放,那么服务器重新启动后,你还可以用这个端口,因为你已经规定可以重用了,如果你没定义的话,你就会得到提示,ADDR已在使用中。原创 2011-01-19 10:58:00 · 231 阅读 · 0 评论 -
Linux网络编程一步一步学-HTTPS客户端程序示例
<br />源代码如下:<br /> <br />#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <errno.h>#include <unistd.h>#include <netinet/in.h>#include <limits.h>#include <netdb.h>#include <arp转载 2010-09-01 14:06:00 · 1430 阅读 · 1 评论 -
VS2008 快捷键大全
Ctrl+m+Crtr+o折叠所有大纲 Ctrl+M+Crtr+P: 停止大纲显示 Ctrl+K+Crtr+C: 注释选定内容 Ctrl+K+Crtr+U: 取消选定注释内容 Ctrl+J : 列出成员 智能感知Shift+Alt+Enter: 切换全屏编辑 Ctrl+B,T / Ctrl+K,K: 切换书签开关 Ctrl+B,N / Ctrl+K,N: 移动到下一书签 Ctrl+B,P: 移动到上一书签 Ctrl+B,C: 清除全部标签 Ctrl+I: 渐进式搜索 Ctrl+Shift原创 2010-08-16 23:22:00 · 156 阅读 · 0 评论 -
linux解压tar命令
linux解压 tar命令 tar命令 tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?原创 2010-06-18 19:39:00 · 227 阅读 · 0 评论 -
浮点数在计算机内存中的存储格式
<br />对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用 64bit,我们在声明一个变量float f = 2.25f的时候,是如何分配内存的呢?其实不论是float类型还是double类型,在计算机内存中的存储方式都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。<br /><br />无论是单精度还是双精度,在内存存储中都分为3个部分:<br />转载 2010-07-29 17:58:00 · 375 阅读 · 0 评论 -
小数的二进制表示
比如说5.6<br /><br />整数部分5用2进制为101<br /><br />小数部分0.6 <br />有这样一个公式: *2 如果<1就为0,基数=基数;大于1,就为1,基数=基数-1 <br /><br />0.6*2=1.2>0 那么就为1 基数=1.2-1=0.2<br /><br />0.2*2=0.4<0 那么就为0,基数=0.4<br /><br />0.4*2=0.8<0,那么就为0,基数=0.8<br /><br />0.8*2=1.6>0 那么就为1原创 2010-07-29 17:10:00 · 2360 阅读 · 0 评论 -
error C2471: 无法更新程序数据库
今天用VC2008编程,做了一点小改动之后运行出现了错误: error C2471:无法更新程序数据库;多方查询之后知道这貌似是VC本身的bug。 将解决方案记下来,以免以后再次遇到时无措。解决方法很简单:在菜单的选项“生成”中,选择:重新生成解决方案即可!转载 2010-05-25 13:02:00 · 448 阅读 · 0 评论 -
error C2275: “jlong”: 将此类型用作表达式非法
在移植c++代码到c的时候,经常会出现一个奇怪的错误,error C2275: “jlong”: 将此类型用作表达式非法表达式非法,这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++没有这样的要求造成的。解决的办法就是把变量的申明全部放在变量的生存块的开始。原创 2010-05-17 19:43:00 · 687 阅读 · 0 评论 -
error:将此类型用作表达式非法
在移植c++代码到c的时候,经常会出现一个奇怪的错误, error C2275: “jlong”: 将此类型用作表达式非法 表达式非法,这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++没有这样的要求造成的。 解决的办法就是把变量的申明全部放在变量的生存块的开始。原创 2010-03-17 08:40:00 · 4103 阅读 · 3 评论 -
C语言与SQL SERVER数据库
1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作。 step1:启动SQLSERVER服务,例如:HNHJ,开始菜单 ->运行 ->net start mssqlserver step2:打开企业管理器,建立数据库test,在test库中建立test表(a varchar(200),b varchar(200))原创 2010-03-03 08:08:00 · 675 阅读 · 0 评论 -
SQL_NTS起什么作用?为什么它能代替字符串长度?
NTS => "Null-Terminated String" when you use SQL_NTS, you are telling the compiler that, the previous parameter is a null-terminated string, please calcul原创 2010-02-05 04:19:00 · 2985 阅读 · 2 评论 -
十大编程字体(转)
对于成天盯着屏幕工作的开发人员来说,编程字体可能是最熟悉的东西了。可是,你想过换一种编程字体吗?你知道编程字体其实有很多选择而且大有学问吗? 知名Web专家Dan Benjamin去年在自己的博客上发表的文章最近成了网上热文。让我们来看看都有哪些字体入围十大了吧。 请注意,下面的字体有些不是免费的。另外,Benjamin一般使用15磅的大字号。 10. Courier 也叫Courier原创 2010-01-21 03:24:00 · 277 阅读 · 0 评论 -
linux等一秒的实现方法
while(time(NULL) == t);原创 2011-06-18 17:08:00 · 264 阅读 · 0 评论