随笔分类 - 网络编程
摘要:1 遍历IP 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--//参数为网络字节序//如192.0.0.1(1<<24)+(0<<16)+(168<<8)+(192<<1)=16820416;APIi...
阅读全文
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--varListenSocket:TSocket;Addr:TSockAddr;Len:Integer;WsaData:TWSADATA;Arg:DWORD;Timeval:TTimeVal;FdRea...
阅读全文
摘要:http://www.codeproject.com/KB/IP/iocp_server_client.aspxhttp://www.codeproject.com/KB/IP/IOCPNet.aspx
阅读全文
摘要:常见的网络服务器,基本上是7*24小时运转的,对于网游来说,至少要求服务器要能连续工作一周以上的时间并保证不出现服务器崩溃这样的灾难性事件。事实上,要求一个服务器在连续的满负荷运转下不出任何异常,要求它设计的近乎完美,这几乎是不太现实的。服务器本身可以出异常(但要尽可能少得出),但是,服务器本身应该被设计得足以健壮,“小病小灾”打不垮它,这就要求服务器在异常处理方面要下很多...
阅读全文
摘要:如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考虑...
阅读全文
摘要:首先搜索了一下论坛里关于send时产生WSAEWOULDBLOCK时的处理办法,得出如下结论: 1.产生这个错误只是说明out buffer已经满了,不代表出错. 2.可以等待FD_WRITE消息,此时将没有发送完成的数据再次发送出去. 但还是有疑问,我的问题如下: 1.我上面的两条结论正确吗? 2.关于在FD_WRITE里把没有发送完的数据发送完,这一点如何做到呢?因为 int nSended ...
阅读全文
摘要:组播使用在internet上面并不是一个好办法,很多的路由器是不支持组播的(以前华为的路由器也不支持,现在不知道),就算现在有路由器支持,你也没有办法保证你的包所经过的路由都是支持组播协议的. 我觉得在WINDOWS下面还是使用TCP(或者UDP的PTOP)的IOCP模型的通用性好一些.至少不用担心你说的问题. 下面的是一段组播程序: unit UdpSocket; interface uses ...
阅读全文
摘要:idUdpserve -----------------TIdBaseComponent // 主要保存版本号信息TIdComponent(建立一个纯虚类TIdStack对象, 获取本机机器名), 另外操作一个结构体WORK数组TIdUDPBase TIdUDPServer 建立一个TIdSocketHandles对象,主要是由用户输入IP,端口号.里边的主要是一个读数据包操作,OnUDPRead...
阅读全文
摘要:减少丢包率1、每个UDP包的体积小,小于460个字节,减少分片,从一定程度上可以减少丢包2、提高接受缓冲区的大小,把接受缓冲设为10K以上3、采用一问一答,每个包编号,自己采用一套机制,但是这样就太复杂,也是QQ比MSN慢的原因
阅读全文
摘要:type THttpThread = class(TThread) private FIdHTTP: TIdHTTP; FUrl: string; FSavePath: string; procedure Down(Url: string; SavePath: string); public constructor Create(CreateSuspended: Boolean; Url: str...
阅读全文
摘要:一、Napster:第一个大型的;中央集中式;倒闭了;二、Gnutella和Gnutella2:开源的;第一个真正非中心的。Gnutella2是对Gnutella的改进和扩展。三、FastTrack:第一个客户端是KazaA。协议与Gnutella类似。02-03年的最大用户网,05年退至第三名。衰退原因是这个网络无法应对众多用户同时使用,而且有版权拥有者polluation的行为,以及间谍软件的...
阅读全文
摘要:http://www.javaeye.com/wiki/topic/433818
阅读全文
摘要:WSA是windows socket API简称1 在delphi用这些API时,应先先明WSAStartup();//初始WSACleanup;//注销后面介绍一些简单函数的使用我也是学了再写,说错的地方指明,这既是自己的笔记也是大家的参考2、socket函数用于生成socket(soket Descriptor)[声明]SOCKET socket(int af,int type,int pro...
阅读全文
摘要:本文适合初中级读者阅读 有时,花上几个小时阅读、调试、跟踪优秀的源码程序,能够更快地掌握某些技术关键点和精髓。当然,前提是对这些技术大致上有一个了解。 我通过几个采用 CSocket 类编写并基于 Client/Server (客户端 / 服务端)的网络聊天和传输文件的程序 ( 详见: 源代码参考 ) ,在调试这些程序的过程中,追踪深入至 CSocket 类核心源码 Sockcore.cp...
阅读全文