秀纳

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

文章分类 -  网络技术

摘要:本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的... 阅读全文
posted @ 2008-01-04 23:09 秀纳 阅读(617) 评论(0) 推荐(0)

摘要:欢迎阅读此篇IOCP教程。我将先给出IOCP的定义然后给出它的实现方法,最后剖析一个Echo程序来为您拨开IOCP的谜云,除去你心中对IOCP的烦恼。OK,但我不能保证你明白IOCP的一切,但我会尽我最大的努力。以下是我会在这篇文章中提到的相关技术: I/O端口 同步/异步 堵塞/非堵塞 服务端/客户端 多线程程序设计 Winsock API 2.0 在这之前,我曾经开发过一个项目,... 阅读全文
posted @ 2008-01-04 22:57 秀纳 阅读(591) 评论(0) 推荐(0)

摘要:Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式... 阅读全文
posted @ 2008-01-04 21:27 秀纳 阅读(1808) 评论(0) 推荐(1)

摘要:这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人叫TCP打孔(我的朋友小妞听说后问“要打孔啊,要不要我帮你去借个电钻过来啊?”“~!·¥%……·!”)。 闲话少说,我们先看一下技术背景: Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到广泛应用。N... 阅读全文
posted @ 2007-09-11 02:58 秀纳 阅读(1587) 评论(5) 推荐(0)

摘要:C#服务端: 1using System; 2using System.Net.Sockets; 3using System.Net; 4using System.IO; 5using System.Diagnostics; 6using System.Threading; 7using System.Runtime.InteropServices; 8 910111213[StructLa... 阅读全文
posted @ 2007-05-26 08:26 秀纳

摘要:下面是从安全焦点(http://www.xfocus.net)网站中FLASHSKY(flashsky1@sina.com)的文章中节选的一段:/-------------------------------------------------因为在winsock的实现中,对于服务器的绑定是可以多重绑定的,在确定多重绑定使用谁的时候,根据一条原则是谁的指定最明确则将包递交给谁,而且没有权限之分,也... 阅读全文
posted @ 2007-05-23 22:39 秀纳 阅读(1228) 评论(0) 推荐(0)

摘要:最近在windows编程时需要考虑到“如何优雅地关闭一个socket”,查阅了一些资料,现将查到的相关资料做个汇编,希望能对后来者有所帮助(比较懒,所以英文资料没有翻译:-)) 1. 关闭Socket时究竟做了什么 关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机检测到远... 阅读全文
posted @ 2007-05-23 22:37 秀纳 阅读(7576) 评论(0) 推荐(2)

摘要:CLOSE_WAIT状态的生成原因 重用本地地址和端口 从容关闭还是强行关闭? 总结 摘要:本文阐述了为何socket连接锁定在CLOSE_WAIT状态,以及通过什么措施力求避免这种情况。 不久前,我的Socket Client程序遇到了一个非常尴尬的错误。它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那么程序会自动不断地重试... 阅读全文
posted @ 2007-05-23 22:36 秀纳 阅读(1384) 评论(0) 推荐(0)

摘要:1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BO... 阅读全文
posted @ 2007-05-23 22:35 秀纳 阅读(2595) 评论(0) 推荐(0)

摘要:本专题主要是介绍UPnP的工作原理和基本概念,包括SSDP、GENA和FXPP等基本协议,以及在Linux下如何使用Intel提供的UPnP开发包实现UPnP控制点和设备。本文是这个专题的第一篇,主要介绍UPnP的工作原理和基本概念。 UPnP是通用即插即用(Universal Plug and Play)的缩写,它主要用于实现设备的智能互联互通。使用UPnP协议不需要设备驱动程序,因此使用UPn... 阅读全文
posted @ 2007-05-14 21:40 秀纳 阅读(941) 评论(0) 推荐(0)

摘要:最近对P2P直播技术进行了一些研究,谈谈个人对Tvkoo软件的优缺点的看法,一方面希望Tvkoo能做的更好,另一方面也抛砖引玉一下。 P2P直播的技术难点有: 一、防火墙的穿透: 超过90%的电脑都在防火墙后面,如果让2台在防火墙后面的电脑能够实现P2P互联,这是一个技术的难点。有2种方式: 1. 要求用户配置TCP端口:BT和电驴采用的方式,配置需要网络专业知识。... 阅读全文
posted @ 2007-02-16 20:36 秀纳 阅读(367) 评论(1) 推荐(1)

摘要:P2P的NAT研究 第一部分:NAT介绍 第二部分:NAT类型检测 第一部分: NAT介绍 各种不同类型的NAT(according to RFC) Full Cone NAT: 内网主机建立一个UDP socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后... 阅读全文
posted @ 2007-02-16 20:34 秀纳 阅读(442) 评论(0) 推荐(0)

摘要:论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。 首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network... 阅读全文
posted @ 2007-02-16 20:30 秀纳 阅读(168) 评论(0) 推荐(0)

摘要:用VPN+NAT再结合路由可以实现很方便的代理功能,适用于有一台能方便连接Internet的电脑,其他不在同一子网内的电脑能够连接到这台机器但不能完全访问Internet。比如好些学校的校园网,访问国外资源需要付流量费,此时可以找一台能够“出国”的服务器并采用此方案。 Windows 2003作为代理服务器时的配置方法如下: 关闭防火墙,用“管理工具”中的“服务”将“Windows Firewa... 阅读全文
posted @ 2006-10-30 18:53 秀纳 阅读(379) 评论(1) 推荐(0)

摘要:过程如下:启用 路由与远程访问,使用默认配置配置路由与远程访问这时候路由与远程访问中已经设置好了vpn服务器及路由器需要做的就是设置nat服务在ip路由选择中右键点击常规,然后添加新的路由选择协议选择nat协议然后在nat中添加新接口,如果是单块网卡的话,且你没有猫,isdn之类的东西,也没有创建什么什么拨号接口的话,只有一个本地连接可以添加,也没有创建什么什么拨号接口的话,只有一个本地连接可以添... 阅读全文
posted @ 2006-10-30 18:05 秀纳 阅读(781) 评论(0) 推荐(0)