随笔分类 -  网络编程

摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--WindowsNT和2000的TCP/IP设置TCP/IP是一个广泛使用的广域网协议,在NT和2000系统中,它的一些参数会由控制面板中的网络或DHCP服务器提供。下面我们从注册表的角度看看TCP/I... 阅读全文
posted @ 2010-04-15 12:07 独奏者 阅读(843) 评论(0) 推荐(0) 编辑
摘要:一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian。引用标准的Big-Endian和Little-E... 阅读全文
posted @ 2010-03-10 16:50 独奏者 阅读(412) 评论(0) 推荐(0) 编辑
摘要:安全套接字层安全套接字层(SSL,其后来版本称为传输层安全TLS)包含了一个握手阶段和加密数据交换阶段。图1展示了SSL握手的整个过程。在图中,第一阶段, 握手过程开始,客户端向服务端发送一组它可以支持的算法列表和一个随机数,该随机数用作密钥生产过程的输入之一。图1安全套接字(SSL)握手(来源:Intel公司, 2009)第2阶段,服务端选择其中的一个加密算法回送给客户端,附带包含该服务器公钥的... 阅读全文
posted @ 2010-01-20 12:26 独奏者 阅读(1024) 评论(0) 推荐(0) 编辑
摘要:下载源代码原文网址:http://www.codeproject.com/KB/IP/iocp_server_client.aspx源码使用了高级的完成端口(IOCP)技术,该技术可以有效地服务于多客户端。本文提出了一些IOCP编程中出现的实际问题的解决方法,并提供了一个简单的echo版本的可以传输文件的客户端/服务器程序。程序截图: 1.1 环境要求本文读者需要熟悉C++、TCP/IP、Sock... 阅读全文
posted @ 2010-01-13 14:27 独奏者 阅读(23227) 评论(6) 推荐(5) 编辑
摘要:[代码] 阅读全文
posted @ 2010-01-02 21:10 独奏者 阅读(6775) 评论(0) 推荐(0) 编辑
摘要:附录1:一个典型的网页,是由一个 html 文件和内嵌的各类元素组成的,这些元素包括页面内的图片,css文件,javascript 文件等等。每一个内嵌的元素在 HTTP 协议的层面上和那个 html文件是没有区别的:也就是都需要浏览器去服务器上抓下来。一个早期典型的浏览器是这样实现的:当用户敲入网址之后,浏览器和服务器建立连接,请求这个html 页面,然后边接收服务器发送的 html页面,边解析... 阅读全文
posted @ 2009-12-19 10:24 独奏者 阅读(358) 评论(0) 推荐(1) 编辑
摘要:6.2.1 接受连接的方法Winsock扩展函数AcceptEx是唯一能够使用重叠I/O接受客户连接的函数。下面主要深入探讨使用该函数接收连接的问题。前面已经讨论过,当客户连接进来时,服务器需要创建一个套接字来负责维护与一个客户端的会话。使用AcceptEx函数之前必须创建一些套接字,并且这些套接字必须是未绑定、未连接的,即使它们可能在调用TransmitFile, TransmitPackets... 阅读全文
posted @ 2009-11-11 15:26 独奏者 阅读(1319) 评论(0) 推荐(0) 编辑
摘要:TransmitFile 和 TransmitPackets Winsock 提供两个专门为文件和内存数据传输进行了优化的函数。其中TransmitFile()这个API函数在Windows NT 4.0 和 Windows 2000上都可以使用,而TransmitPackets()则将在未来版本的Windows中实现。TransmitFile()用来把文件内容通过Winsock进行传输。通常发送... 阅读全文
posted @ 2009-11-04 23:37 独奏者 阅读(4454) 评论(0) 推荐(0) 编辑
摘要:Windows NT和Windows 2000的套接字架构对于开发大响应规模的Winsock应用程序而言,对Windows NT和Windows 2000的套接字架构有基本的了解是很有帮助的。与其它类型操作系统不同,Windows NT和Windows 2000的传输协议没有一种风格像套接字那样的、可以和应用程序直接交谈的界面,而是采用了一种更为底层的API,叫做传输驱动程序界面(Transpor... 阅读全文
posted @ 2009-11-04 23:36 独奏者 阅读(605) 评论(0) 推荐(0) 编辑
摘要:资源的限制条件在设计任何服务器应用程序时,其强健性是主要的目标。也就是说,你的应用程序要能够应对任何突发的问题,例如并发客户请求数达到峰值、可用内存临时出现不足、以及其它短时间的现象。这就要求程序的设计者注意Windows NT和2000系统下的资源限制条件的问题,从容地处理突发性事件。你可以直接控制的、最基本的资源就是网络带宽。通常,使用用户数据报协议(UDP)的应用程序都可能会比较注意带宽方面... 阅读全文
posted @ 2009-11-04 23:36 独奏者 阅读(522) 评论(0) 推荐(0) 编辑
摘要:接受连接请求服务器要做的最普通的事情之一就是接受来自客户端的连接请求。在套接字上使用重叠I/O接受连接的惟一API就是AcceptEx()函数。有趣的是,通常的同步接受函数accept()的返回值是一个新的套接字,而AcceptEx()函数则需要另外一个套接字作为它的参数之一。这是因为AcceptEx()是一个重叠操作,所以你需要事先创建一个套接字(但不要绑定或连接它),并把这个套接字通过参数传给... 阅读全文
posted @ 2009-11-04 23:29 独奏者 阅读(1997) 评论(1) 推荐(0) 编辑
摘要:Title:Design Issues When Using IOCP in a Winsock Server标题:使用IOCP开发Winsock服务器的一些设计内容。原文地址:http://support.microsoft.com/kb/192800翻译地址:http://www.libing.net.cn/post/Design-Issues-When-Using-IOCP-in-a-Win... 阅读全文
posted @ 2009-11-01 19:18 独奏者 阅读(529) 评论(0) 推荐(0) 编辑
摘要:在使用IOCP时,最重要的几个API就是GetQueueCompeltionStatus、WSARecv、WSASend,数据的I/O及其完成状态通过这几个接口获取并进行后续处理。GetQueueCompeltionStatus attempts to dequeue an I/O completion packet from the specified I/O completion port. ... 阅读全文
posted @ 2009-10-30 00:26 独奏者 阅读(5193) 评论(0) 推荐(0) 编辑
摘要:以前编码问题总能让自己凑或蒙过去,最近要做一个项目服务器端用python写,客户端用c++,工程编译的字符集使用UNICODE。之间通过socket进行通信,通信过程中编码转换问题把我搞得晕头转向,逼着我将编码问题好好研究一番。首先先谈谈VC中的编码问题,首先编码我们大致可以分为两类:文件编码和内存编码。文件编码即源代码文件的编码,gbk,UTF-8等。内存编码即源代码编译成为二进制文件的时候采用... 阅读全文
posted @ 2009-10-21 20:39 独奏者 阅读(1783) 评论(0) 推荐(0) 编辑
摘要:这是网络编程的基础,tcp的状态转移图说到底就是一个状态机的不同状态之间的转换关系以及触发这些状态需要的条件,一共存在11个状态,我们来逐一分析: 1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。 2.LISTEN:svr端在等待连接过来时候的状态,svr端为此要调用socket, bind,listen函数,就能进入此状态。此称为应用程序被动打开(等待客户端来连接)。 3.SYN_... 阅读全文
posted @ 2009-10-14 15:28 独奏者 阅读(4370) 评论(0) 推荐(1) 编辑
摘要:[代码] 阅读全文
posted @ 2009-10-13 21:34 独奏者 阅读(394) 评论(0) 推荐(0) 编辑
摘要:[代码] 阅读全文
posted @ 2009-10-13 21:29 独奏者 阅读(309) 评论(0) 推荐(0) 编辑
摘要:对穿越NAT做些总结:先做个约定:内网A中有:A1(192.168.0.8)、A2(192.168.0.9)两用户,网关X1(一个NAT设备)有公网IP 1.2.3.4内网B中有:B1(192.168.1.8)、B2(192.168.1.9)两用户,网关Y1(一个NAT设备)有公网IP 1.2.3.5公网服务器:C (6.7.8.9) D (6.7.8.10)NAT两大类:l NAT(Networ... 阅读全文
posted @ 2009-10-13 09:48 独奏者 阅读(736) 评论(0) 推荐(0) 编辑
摘要:完成端口通讯服务器(IOCP Socket Server)设计(三)不要迷信API(单链表的另一种算法)Copyright © 2009 代码客(卢益贵)版权所有QQ:48092788 源码博客:http://blog.csdn.net/guestcode用这个标题可能会牵强了点。只是因为在性能优化中遇到这样的事情,因此用来做标题而已,由此通过一个小事抛出本文介绍的内容:单链表的另一种算... 阅读全文
posted @ 2009-09-30 14:41 独奏者 阅读(1304) 评论(0) 推荐(0) 编辑
摘要:完成端口通讯服务器(IOCP Socket Server)设计(二)内存管理(AWE)Copyright © 2009 代码客(卢益贵)版权所有QQ:48092788 源码博客:http://blog.csdn.net/guestcode有牛人曾经说过,服务器玩的就是内存。仔细想想,确实是如此。服务器对内存的需求是巨大的,对内存的要求也是苛刻的。如何在内存管理上下功夫使服务器性能达到一个... 阅读全文
posted @ 2009-09-30 14:38 独奏者 阅读(1131) 评论(0) 推荐(0) 编辑