服务器开发
文章平均质量分 89
kaylc
这个作者很懒,什么都没留下…
展开
-
TCP Socket编程的几点肮脏的问题
1.有客户端开多线程对服务器进行连接断开压力测试,在连接接近4000次时,再也连接不上服务器,过了段时间后恢复正常,而后再出现,如此往复.使用Prcess Explorer查看System Idle Process发现大量的TIME_WAIT状态下的Socket.<br />解析如下:<br />TCP TIME-WAIT 延迟断开TCP 连接时,套接字对被置于一种称为TIME-WAIT 的状态。这样,新的连接不会使用相同的协议、源 IP 地址、目标 IP 地址、源端口和目标端口,直到经过足够长的时间后,确转载 2011-02-26 15:37:00 · 842 阅读 · 0 评论 -
Windows Socket IO 模型
http://blog.huang-wei.com/2010/11/21/winsock-io/Windows Socket IO 模型套接字架构 应用程序使用Winsock与传输协议驱动沟通时AFD.SYS负责缓冲区的管理。这就意味着当一转载 2011-07-31 11:49:43 · 650 阅读 · 0 评论 -
用C++实现HTTP服务器 - 处理完成端口模型(IOCP)的超时问题
如何处理完成端口模型(IOCP)的超时问题.作者: 阙荣文 2011/7/12前言完成端口(IOCP)是所有Windows I/O模型中最复杂,也是性能最好的一种.在关于IOCP的编程中,难点之一就是超时控制.以下以HTTP服务器程序为例说一说.转载 2011-07-31 11:32:39 · 2678 阅读 · 0 评论 -
RoR网站如何利用lighttpd的X-sendfile功能提升文件下载性能
传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应用程序内存,然后再把内存当中的内容发送给客户端浏览器。这种方式在应付当今大负载网站,音频视频网站力不从心。sendfile是现代操作系统支持的一种高性能网络IO方式,操作系统内核的sendfile调用可以将文件内容直接转载 2011-07-15 13:31:22 · 655 阅读 · 0 评论 -
Windows完成端口与Linux epoll技术简介
WINDOWS完成端口编程1、基本概念2、WINDOWS完成端口的特点3、完成端口(Completion Ports )相关数据结构和创建4、完成端口线程的工作原理5、Windows完成端口的实例代码Linux的EPoll模型1、为什么select落后2、内核中提高I/O性能的新转载 2011-07-14 09:42:14 · 746 阅读 · 0 评论 -
Apache Nginx lighttpd HAProx Litespeed 缓冲原理解析fastcgi性能
由于最近在忙于web server的开发,对于静态部分跟动态部分的交互一直迟迟未定,缓冲区大小也一直很头疼,看了下面的这篇文章觉得不错,我还是这样觉得,简单的就是最好的,但并不意味着所有处理都用一种方式,正如我在静态输出的socket buffer上面一样,我是根据请求内容的大小转载 2011-07-15 12:45:04 · 868 阅读 · 0 评论 -
setsockopt 设置socket
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,size转载 2011-07-15 10:41:53 · 663 阅读 · 0 评论 -
稳定的完成端口开发细节讨论
完成端口做为windows上最高效的网络编程模型,做为众多服务器网络层的首选。网上有很多参考资料和示例源码,大多存在问题,本文将以开发一个稳定易用的完成端口组件为目标,详细讨论开发过程中所遇到的细节问题,并给出相应的解决方案。阅读本文需要你有这方面的开发经验,对于IOCP的工作流转载 2011-07-11 11:28:06 · 1931 阅读 · 0 评论 -
Winsock Programmer’s FAQ
http://tangentsoft.net/wskfaq/转载 2011-06-29 11:15:00 · 476 阅读 · 0 评论 -
完美地关闭Socket的注意事项
大部分程序员喜欢追求完美,这里看一下XEIM完美地关闭Socket的注意事项:1. 关闭Socket时究竟做了什么关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机检测到远程主机发起关闭之后,作出回应,从而关闭整个连接。起初每个socket都是CLOSED状态,当客户端初使化一个连转载 2011-06-26 16:35:00 · 2435 阅读 · 0 评论 -
用完成端口开发大响应规模的Winsock应用程序(作者:Anthony Jones&Amol Deshpande 翻译:刘西齐)
<br />原文出处:http://msdn.microsoft.com/msdnmag/issues/1000/Winsock/<br /><br />通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了——创建和连接一个套接字,尝试进行连接,然后收发数据。真正难的是要写出一个可以接纳少则一个,多则数千个连接的网络应用程序。本文将讨论如何通过Winsock2在Windows NT 和 Windows 2000上开发高扩展能力的Winsock应用程序。文章主要的焦点在客户转载 2011-02-13 20:11:00 · 1401 阅读 · 0 评论 -
IOCP配合AcceptEx的例子
<br />这是在学《Windows网络编程(第二版)》第六章时制作的一个例子<br />由于书中没有给出简洁的例子,本人在学这里时就费了很多时间。<br />现在把完成的代码贴出来,供大家参考。<br />下面包括了主程序部分,工作线程在(2)中贴出,由于代码太长。<br />本程序在VS2003编译器编译运行。在6.0下可能需要稍加修改。<br />#include <iostream><br />#include <winsock2.h><br />#include <ws2tcpip.h><br /转载 2011-03-03 13:53:00 · 997 阅读 · 0 评论 -
编写完成端口网络服务器的一些说明
<br />1. AcceptEx: <br />BOOL<br />PASCAL FAR<br />AcceptEx (<br /> IN SOCKET sListenSocket,<br /> IN SOCKET sAcceptSocket,<br /> IN PVOID lpOutputBuffer,<br /> IN DWORD dwReceiveDataLength,<br /> IN DWORD dwLocalAddressLength,<br /> IN DWORD d转载 2011-03-03 13:52:00 · 504 阅读 · 0 评论 -
一个解除TCP连接的TIME_WAIT状态限制的简便方法
<br />/************************************<br />* 版权声明<br />* 本文为本人原创,本人拥有此文的版权。鉴于本人持续受益于开源软件社区,<br />* 本人声明:任何个人及团体均可不受限制的转载和复制本文,无论是否用于盈利<br />* 之目的,但必须在转载及复制时同时保留本版权声明,否则为侵权行为,本人保<br />* 留追究相应法律责任之权利。<br />* speng2005@gma转载 2011-02-26 15:55:00 · 990 阅读 · 0 评论 -
TCP 连接关闭的 TIME_WAIT (2MSL) 状态,及 TCP 连接状态图
上学时画的 TCP 连接状态图,本来是为了搞清楚 socket 编程时的一个问题:客户端通常不绑定(bind()) inet 地址结构,而采用随机的端口建立连接 socket(connect())。如果客户端绑定一个指定端口的 inet 地址,一般在运行完第一次客户端后,紧接着第二次运行客户端,就会出现客户端 socket 无法绑定先前的 inet 地址了,程序也就无法继续运行,大概过上几分钟后再运行客户端,绑定过程又恢复正常了。当时我知道一般客户端是不 bind() 地址的,因为这样就无法在一台主机上同时转载 2011-02-26 15:43:00 · 2626 阅读 · 0 评论 -
3proxy 简单教程
配置文件的简要说明:如果你的英文理解力好,可以试着研究一下他的手册。以实例说明吧nscache 65536域名解析结果的cache时间log c:\windows\3proxy.log D日志文件路径,D = Daily rotation(每天一个文件)logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I转载 2013-03-11 10:55:45 · 8844 阅读 · 1 评论