自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (9)
  • 收藏
  • 关注

原创 服务器中循环索引的作用(socket)

在进行服务器开发时,有很多需要注意的地方:1、socket索引对应一个客户端,这是很常用的做法,但是如果此socket出现异常,服务端关闭了      此socket,而另一个客户端又连接进来,此时分配的socket句柄很有可能跟刚才的句柄一样     这样便会导致一些很难调试的异常发生,预防的方法是,除了用socket对应一个客户端,还要     用一个循环索引index

2015-08-23 15:04:59 835

转载 Tcp通信中服务器处理客户端意外断开 / 10054

所谓意外断开,是客户端(多指支持3G的移动设备)并没有正常关闭socket,双方并未按照协议上的四次挥手去断开连接,一般的处理办法都是利用保活机制。而保活机制分又可以让底层实现也可自己实现。一、双方拟定心跳(自实现)一般由客户端发送心跳包,服务端并不回应心跳,只是定时轮询判断一下与上次的时间间隔是否超时(超时时间自己设定)。服务器并不主动发送是不想增添服务器的通信量,减少压力。

2015-08-15 18:38:07 10568

转载 socket关闭 四次握手

主要部分,四次握手:断开连接其实从我的角度看不区分客户端和服务器端,任何一方都可以调用close(or closesocket)之类的函数开始主动终止一个连接。这里先暂时说正常情况。当调用close函数断开一个连接时,主动断开的一方发送FIN(finish报文给对方。有了之前的经验,我想你应该明白我说的FIN报文时什么东西。也就是一个设置了FIN标志位的报文段。FIN报文也可能

2015-08-15 18:29:11 3719

转载 深入浅出TCP协议的2MSL TIME_WAIT状态

TCP状态迁移路线图:2MSL TIME_WAIT状态存在的理由:TIME_WAIT状态的存在有两个理由:(1)让4次握手关闭流程更加可靠;4次握手的最后一个ACK是是由主动关闭方发送出去的,若这个ACK丢失,被动关闭方会再次发一个FIN过来。若主动关闭方能够保持一个2MSL的TIME_WAIT状态,则有更大的机会让丢失的ACK被再次发送

2015-08-14 15:53:03 403

原创 windbg解决线程死锁

1、打开将要被检测的软件A,同时打开windbg2、windbg,File->attach to process ,附加到进程A3、F5运行或DEBUG->GO4、等待进程A进入死锁状态,然后DEBUG->Break,在下面的输入栏中输入   ~*kb,然后查看各线程信息,分析死锁原因

2015-08-14 09:56:35 5011 2

原创 C++ 锁,socket死锁

我们常常对需要多线程共同访问的资源进行加锁,但当在同一个线程中时,一个锁还没离开之前,还可以加一道锁。。。例:                CRITICAL_SECTION cs;InitializeCriticalSection(&cs);EnterCriticalSection(&cs);EnterCriticalSection(&cs);

2015-08-07 17:07:28 1150

原创 C++ 头文件重复包含

当头文件重复包含时,常常会遇到编译不过的情况,这时,只需要预先定义一下某变量或类即可:例://a.h#include "b.h"class CTestA{public:    CTestB    m_b;        //error}//b.h#include "a.h"class CTestB    {public

2015-08-07 09:54:27 605

转载 IOCP中在WSASend以及WSARecv的时候出现WSA_IO_PENDING情况的说明

原文链接:http://www.xixis.net/doserver.net//read.php/2063.htm  应该是windows网络编程第二版里面提到过。现在整理一下。1:在IOCP中投递WSASend返回WSA_IO_PENDING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。

2015-08-05 11:28:52 675

golang调试程序dlv.exe(delve)

采用 go get -u github.com/go-delve/delve/cmd/dlv 编译安装,dlv是2021.4.17日最新的版本

2021-04-17

日本人 发明的胡牌算法,比普通的拆解法更好

不懂日文的的,下载后可以翻译下日文。资源包括说明文件和代码文件。当然也可以直接访问原作者的文章地址:http://hp.vector.co.jp/authors/VA046927/mjscore/mjalgorism.html

2018-06-29

quake3源码

quake3源码,内含大量经典算法,代码质量很高,学习一下很有必要

2018-01-24

windows下C++实现的HTTP web 服务器

测试方式(依次在浏览器输入一下内容进行不同情形的测试): 127.0.0.1:9988 127.0.0.1:9988/hehe.html 127.0.0.1:9988/login.html 127.0.0.1:9988/haha?x=10&y=20 也可以下载fiddler工具进行更全面的模拟测试! 1、支持GET/POST方法 2、支持CGI 3、支持错误返回 4、支持chunked数据的解析 缺点: 1、支持的方法不够全面 2、CGI实现不够科学,可以尝试使用FASTCGI 3、不支持https 4、不支持回应chunked数据 感兴趣的同学可以继续完善相关功能.

2017-10-12

libcurl windows版本静态库 动态库 头文件

libcurl

2017-06-05

windows下协程实现(fiber、汇编、非共享栈、共享栈)

windows下协程实现(fiber、汇编、非共享栈、共享栈)

2017-01-24

多处理器编程的艺术

2016-05-23

IOCP 使用WSASend群发消息

http://download.csdn.net/my/uploads 稍加改动

2015-04-28

socket select及IOCP模型的实现

DEBUG目录下: 1.netchatS.exe,netchatSPool.exe(未写完),iocp.exe公用客户端 netchatC.exe 2.msdn_iocpS.exe对应客户端为msdn_iocpC.exe,这是msdn自带的例子,我稍加改动 3.open.bat可批量启动客户端(服务器需先开启,启动数自己可修改),close.bat与之对应 4.config.ini为服务器IP,自行修改

2015-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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