本人很多年前接触完成端口以来,期间学习和练习了很多次,本以为自己真正地理解了其原理,最近在看网狐的服务器端源码时又再一次拾起完成端口的知识,结果发现以前理解的其实很多偏差,有些理解的甚至都是错误的.网络上关于windows完成端口的介绍举不胜举,但大多数都是介绍怎么做,而不是为告诉读者为什么这么做.看了很多遍小猪的讲解:http://blog.csdn.net/piggyxp/article/details/6922277,终于有些顿悟.为自己也为别人,在这里做个备忘. 这篇文章将从为什么这么做…
DELPHI中完成端口(IOCP)的简单分析(3)   fxh7622关注4人评论7366人阅读2007-01-17 11:18:24   最近太忙,所以没有机会来写IOCP的后续文章.今天好不容易有了时间来写IOCP的粘包处理问题. TCP数据粘包的产生原因在于TCP是一种流协议.在以太网中一个TCP的数据包长度是1500位.其中20位的IP包头,20位的TCP包头,其余的1460都是我们可以发送的数据.在数据发送的时候,我们发送的数据长度有可能比1460短,这样在TCP来说它还是以一个数据包…
写了一段检查Windows下端口占用情况的脚本,代码如下: function checkPid($result,$port){ $port = $port.split(":")[1] if(($result.split())[6].split(":")[($result.split())[6].split(":").Count-1] -eq $port){ $tPid = ($result.split())[($result.split()).c…
“完成端口”模型是迄今为止最为复杂的一种I/O模型.然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统.因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性提升,才应考虑采用“完成端口”模型.要记住的一个基本准则是,假如要为Windows NT或Windows 2000开发高性能的…
windows tcp端口映射或端口转发 windows内部有一个叫netsh的玩意,可以把tcp端口进行映射或转发,可惜不支持udp.举个例子:一台windows有一个80端口,对外可以访问.另有一个99端口,不能对外访问,只能本机访问. 现在就用这个功能,把80端口映射到99端口,来实现外部访问本机80端口,实际上是访问了本机的99端口.过程:(下面的端口都指tcp端口) 1.打开cmd 2.安装: 非XP只需要 netsh interface ipv4 install XP除了需要跑这条外…
使用端口是我们在进行远程或者打印机等都会遇到的,但是有很多用户会遇到端口被占用的情况,遇到这样的问题首先就要找出电脑中的所以端口然后进行查看,还是有很多人不知道该如何查看电脑端口. 1 查看windows所有端口进程 首先点击开始菜单选择运行,接着在运行对话框中输入“cmd”,回车打开命令提示符窗口,然后在窗口中输入 netstat -ano ,按下回车,之后就会显示所有的端口占用情况. 2 查询指定端口 如果你要查询指定的端口占用的话,可以在窗口中继续输入 netstat -aon|finds…
Windows NAT端口映射 由于有需求进行端口映射,又不想装乱七八糟的软件,Windows本身自带的路由远程访问配置太麻烦,还要两块网卡,坑爹啊. 其实Windows本身命令行支持配置端口映射,条件是已经安装了IPV6,启不启用都无所谓,我在win7和server2008上是可以的.xp,2003装了ipv6协议也是可以的. 端口映射 端口映射就是将外网主机IP地址的一个端口映射到内网中一台机器,提供相应的服务.当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上. C…
windows下查询端口占用情况 ,强制结束端口占用程序 查询8080端口被那个程序占用 如何强制结束windows下端口占用情况? 下面操作在win10下 在控制台执行命令   1.列出所有端口的情况 netstat -ano 2.查询指定的端口被占用的情况   上图中本地地址一列中的冒号:  后面的数字就是端口号 netstat -aon|findstr "端口号"…
DELPHI中完成端口(IOCP)的简单分析(4)   在我以前写的文章中,一直说的是如何接收数据.但是对于如何发送数据却一点也没有提到.因为从代码量上来说接收的代码要比发送多很多.今天我就来写一下如何使用IOCP发送数据.   function TNetControl.SendSpecifyData(const Socket: TSocket; Data: array of char;  DataLen: Integer): Boolean;   const     DATA_BUFSIZE…
DELPHI中完成端口(IOCP)的简单分析(2)   今天我写一下关于DELPHI编写完成端口(IOCP)的工作者线程中的东西.希望各位能提出批评意见.上次我写了关于常见IOCP的代码,对于IOCP来说,接受到客户端发送过来和自己发送出去的数据都是从工作者线程中得到.代码和解释如下:function ServerWorkerThread(CompletionPortID:Pointer):Integer;stdcall;begin   CompletionPort:=THANDLE(Compl…