上一页 1 2 3 4 5 6 7 8 9 ··· 21 下一页
摘要: 实用场景: 例子1: 例子2: 生产者 消费者 之间 .h .cpp 注意:其他线程使用时注意push,pop需要同步! 阅读全文
posted @ 2019-03-27 19:18 jadeshu 阅读(856) 评论(0) 推荐(0) 编辑
摘要: //#include <stdio.h> //#include <stdlib.h> //#include <unistd.h> #include <windows.h> //#include <pthread.h> #include <mutex> #include <thread> #inclu 阅读全文
posted @ 2019-03-27 18:24 jadeshu 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 一 c++11 windows linux三种方式//#include //#include //#include #include //#include #include #include #include ... 阅读全文
posted @ 2019-03-27 18:24 jadeshu 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 文件IO,它们设计是分层的,分层有2个好处,一是架构清晰,二是解耦。让我们看一下下面这张图。 1. 穿越各层写文件方式程序的最终目的是要把数据写到磁盘上, 但是系统从通用性和性能角度,尽量提供一个折中... 阅读全文
posted @ 2019-03-25 19:03 jadeshu 阅读(95) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include <vector> #include <map> #include <unordered_map> #include <algorithm> using namespace std; void OutPut(char val) { cout < 阅读全文
posted @ 2019-03-24 21:51 jadeshu 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 建立连接后,两台主机就可以相互传输数据了。如下图所示:上图给出了主机A分2次(分2个数据包)向主机B传递200字节的过程。首先,主机A通过1个数据包发送100个字节的数据,数据包的 Seq 号设置为 1200。主... 阅读全文
posted @ 2019-03-24 15:42 jadeshu 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 建立连接非常重要,它是数据正确传输的前提;断开连接同样重要,它让计算机释放不再使用的资源。如果连接不能正常断开,不仅会造成数据传输错误,还会导致套接字不能关闭,持续占用资源,如果并发量高,服务器压力堪忧。建立连... 阅读全文
posted @ 2019-03-24 15:39 jadeshu 阅读(99) 评论(0) 推荐(0) 编辑
摘要: TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。客户端在收发数据前要使用 conn... 阅读全文
posted @ 2019-03-24 15:21 jadeshu 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 表 1 中,“流操纵算子”栏中的星号*不是算子的一部分,星号表示在没有使用任何算子的情况下,就等效于使用了该算子。 调用cout的成员函数 ostream 类有一些成员函数,通过 cout 调用它们也能用于控制输出的格式,其作用和流操纵算子相同,如表 2 所示。 setf 和 unsetf 函数用到 阅读全文
posted @ 2019-03-24 14:40 jadeshu 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 详细列表 bin 阅读全文
posted @ 2019-03-23 19:34 jadeshu 阅读(1036) 评论(0) 推荐(1) 编辑
摘要: WM_GETMINMAXINFO 0X0024 36 WM_NCCREATE 0X0081 129 WM_NCCALCSIZE 0X0083 131 WM_CREATE 0X0001 1 WM_SIZE 0X0005 5 WM_MOVE 0X0003 3 WM_SETFONT 0X0030 48 W 阅读全文
posted @ 2019-03-22 17:02 jadeshu 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 很幽默的讲解六种Socket I/O模型本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSA... 阅读全文
posted @ 2019-03-21 13:19 jadeshu 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 很少有人关心字节顺序(Byte Ordering),因为它真的很少用到。何为字节顺序呢?让我们先来看一个例子,假设现在有一个WORD类型的变量,它的值为0x7788,那么它在内存中是怎么存放的呢? 内存中: 低地址 高地址 0x77 0x88 高地址 低地址 0x77 0x88 事实上,对于不同的C 阅读全文
posted @ 2019-03-21 13:04 jadeshu 阅读(1338) 评论(0) 推荐(0) 编辑
摘要: 几种winsock I/O模型的分析 套接字是通信的基础,是支持网络协议数据通信的基本接口。Winsocket 提供了一些有趣的I/O模型,有助于应用程序通过一种“异步”方式,一次对一个或者多个套接字上进行的通信加以管理。这些模型包括select(选择)、WSAAsynSelect(异步选择)、WS 阅读全文
posted @ 2019-03-21 13:00 jadeshu 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 1、GDI对象和核心对象之间最主要的区别在于GDI对象有单一拥有者,不是进程就是线程 2、核心对象可以有一个以上的拥有者,甚至可以跨进程,为了保持对每一位(拥有者)的追踪,核心对象保持了一个引用计数,以记录有多少handles对应到此对象,对象中也记录了哪一个进程或线程是拥有者。 3、当你调用Clo 阅读全文
posted @ 2019-03-19 18:03 jadeshu 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1·处理WM_PAINT 最极端的选择是执行一个 WM_PAINT 处理程序,并且自己完成所有的绘制。这意味着,您的代码将需要进行一些与呈现控件相关的琐事 — 创建适当的设备上下文(一个或多个),决定控件的大小和位置,绘制控件等。在绘制过程中,很少需要这种级别的控件。 2·所有者绘制(owner d 阅读全文
posted @ 2019-03-17 20:16 jadeshu 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1.IOCP 2.使用IOCP 1)创建完成端口CreateIoCompletionPort; 2)向完成端口添加管理句柄与管理用户数据; 3)异步发送一个管理的事件请求; 4)开启工作线程来处理IOCP在socket返回的事件,让工作线程等待在IOCP上,一旦有事件完成,IOCP会唤醒它上面的这个 阅读全文
posted @ 2019-03-12 01:49 jadeshu 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 看本系统文章需要些C语言、数据结构和网络基础知识! 说明:由于游戏服务器端会有成千上万的客户端进行连接请求,所以要求我们需要做一些简单的会话管理!如下图 1.简单说明 进行统一的分配和管理,就需要我们去统一分配资源,创建和销毁(也就内存统一进行管理),采取一种内存池方式来管理。 1)先分配一块大的堆 阅读全文
posted @ 2019-03-11 22:26 jadeshu 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 普通树转换为二叉树进行存储过程: 设法保证任意一个节点的左指针域执行它的第一个孩子节点,右指针域指向它的下一个兄弟节点! 森林转二叉树,先将每棵树转二叉树,然后合并,合并规则同上! 两种方式 1)数组 在数组中摆放非线性的二叉树数据,数据可以放进数组中,但是我们无法再找回原来的关系图。 如下面这图中 阅读全文
posted @ 2019-03-10 20:13 jadeshu 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-03-10 20:10 jadeshu 阅读(96) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 21 下一页