摘要: SOCKET Open(const char* strIP, UINT nPort, int nTimeOut) { SOCKET sockfd = NULL; do { sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sockfd 0) { getsockopt(sockfd, SOL_SOCKET, SO_ERROR, (char*)&error, &len); if(error != 0) { break; } } el... 阅读全文
posted @ 2013-06-26 11:40 崇山峻岭 阅读(1554) 评论(0) 推荐(1)
摘要: 假如端口被socket使用过,并且利用socket.close()来关闭连接,但此时端口还没有释放,要经过一个TIME_WAIT的过程之后才能使用。为了实现端口的马上复用,可以选择setsockopt()函数来达到目的。python:import sockettcp1=socket.socket(socket.AF_INET,socket.SOCK_STREAM)tcp1.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)tcp1.bind('1.1.1.1',12345)此为tcp的例子,udp一样c:s = socket( 阅读全文
posted @ 2013-06-25 10:29 崇山峻岭 阅读(381) 评论(0) 推荐(0)
摘要: 通过CreateProcess启动进程,记录pi.dwProcessId; 然后通过OpenProcess判断此进程是否结束。感觉没有什么错误。跑了一下发现,在任务管理器中结束被启动的进程后,OpenProcess照样能获得进程句柄,但在任务管理器中此进程确实不存在了。考虑到进程句柄是一个内核对象。... 阅读全文
posted @ 2013-05-31 16:09 崇山峻岭 阅读(1741) 评论(0) 推荐(0)
摘要: VC++ 通过进程名或进程ID获取进程句柄 http://wenhaidongke.blog.163.com/blog/static/1280700902009101992259465/HANDLE GetProcessHandle(int nID){ return OpenProcess(PROCESS_ALL_ACCESS, FALSE, nID);}HANDLE GetProcessHandle(LPCTSTR pName){ HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (INVALID_H 阅读全文
posted @ 2013-05-28 17:21 崇山峻岭 阅读(560) 评论(0) 推荐(0)
摘要: http://hi.baidu.com/tulkphakyfbdmse/item/0872921f618c9affdceecacaWindows管道系统 - 第一篇关于管道Windows存在两种类型的管道: “匿名管道”(Anonymous pipes)和”命名管道”(Named pipes)。匿名管道相比命名管道需要较小的开销,同时它也只提供有限的系统服务。术 语管道用在这里,毫无疑问地它是作为了一种信息交换的渠道。概念上一个管道有A、B两个端点。一个单路(“One-way”)管道允许在A端的进程向管道 写入数据,允许在B端的进程从管道读出数据。而一个双路(或双通道)管道允许进程在管道的A、 阅读全文
posted @ 2013-05-13 21:29 崇山峻岭 阅读(846) 评论(0) 推荐(0)
摘要: 手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前 言 http://blog.csdn.net/piggyxp/article/details/6922277 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注 意事项,都有所涉及,并且为了让朋友们更直观的体. 阅读全文
posted @ 2013-04-27 17:44 崇山峻岭 阅读(369) 评论(0) 推荐(0)
摘要: SublimeText3搭建go语言开发环境(windows)下载并解压: Sublime Text Build 3064.zip安装PackageControl: The simplest method of installation is through the Sublime Text con... 阅读全文
posted @ 2013-04-16 20:50 崇山峻岭 阅读(1041) 评论(0) 推荐(0)
摘要: go语言疑问1、在widnows环境下build太慢2、如何编译出动态链接库(.dll,.so)3、编译出的文件太大 阅读全文
posted @ 2013-04-09 17:03 崇山峻岭 阅读(210) 评论(1) 推荐(0)
摘要: [转]TCP连接的状态与关闭方式,及其对Server与Client的影响http://www.cnblogs.com/fczjuever/archive/2013/04/05/3000680.html1.TCP连接的状态 首先介绍一下TCP连接建立与关闭过程中的状态。TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用、特定数据包以及超时等,具体状态如下所示:CLOSED:初始状态,表示没有任何连接。LISTEN:Server端的某个Socket正在监听来自远方的TCP端口的连接请求。SYN_SENT:发送连接请求后等待确认信息。当客户端Socket进行Connect连接时,会首先. 阅读全文
posted @ 2013-04-06 19:43 崇山峻岭 阅读(193) 评论(0) 推荐(0)
摘要: [装]解决sqlite3插入数据很慢的问题http://blog.csdn.net/victoryknight/article/details/7461703 初用sqlite3插入数据时,插入每条数据大概需要100ms左右。如果是批量导入,可以引进事物提高速度。但是假设你的业务是每间隔几秒插入几条数据,显然100ms是不能容许的。解决办法是,在调用sqlite3_open函数后添加下面一行代码: sqlite3_exec(db, "PRAGMA synchronous = OFF; ", 0,0,0); 上面的解决办法貌似治标不治本,为什么加上上面的代码行,速度会提高那么 阅读全文
posted @ 2013-03-18 15:40 崇山峻岭 阅读(305) 评论(0) 推荐(0)