易截截图软件、单文件、免安装、纯绿色、仅160KB

WSAAsyncSelect模型Delphi简单实现


TCP连接建立与关闭
相信各位读者现在对於 Winsock 的定义、系统环境,以及一些 Winsock Stack及 Winsock 应用程式,都有基本的认识了。接下来笔者希望能分几期为各位读者介绍一下简单的 Winsock 网路应用程式设计。我们将以 Winsock 1.1 规格所定义的 46 个应用程式介面(API)为基础,逐步来建立一对 TCP socket 主从架构(Client / Server)的程式。在这两个程式中,Server 将使用 Winsock 提供的「非同步」(asynchronous)函式来建立 socket 连结、关闭、及资料收送等等;而 Client 则采类似传统 UNIX 的「阻拦式」(blocking)。由於我们的重点并不在於 MS Windows SDK 的程式设计,所以我们将使用最简便的方式来显示讯息;有关 MS Windows 程式的技巧,请各位读者自行研究相关的书籍及文章。
今天我们先要看一下主从架构 TCP socket 的建立连结(connect)及关闭(close)。以前笔者曾简单地介绍过主从架构的概念,现在我们再以生活上更浅显的例子来说明一下,读者稍後也较容易能明白笔者的叙述。我们可以假设 Server 就像是电信局所提供的一些服务,比如「104 查号台」或「112 障碍台」。
(1)电信局先建立好了一个电话总机,这就像是呼叫 socket() 函式开启了一个 socket。
(2)接著电信局将这个总机的号码定为 104,就如同我们呼叫 bind() 函式,将 Server 的这个 socket 指定(bind)在某一个 port。当然电信局必须让用户知道这个号码;而我们的 Client 程式同样也要知道 Server 所用的 port,待会才有办法与之连接。
(3)电信局的 104 查号台底下会有一些自动服务的分机,但是它的数量是有限的,所以有时你会拨不通这个号码(忙线)。同样地,我们在建立一个 TCP 的Server socket 时,也会呼叫 listen() 函式来监听等待;listen() 的第二个参数即是 waiting queue 的数目,通常数值是由 1 到 5。(事实上这两者还是有点不一样。)
(4)用户知道了电信局的这个 104 查号服务,他就可以利用某个电话来拨号连接这个服务了。这就是我们 Client 程式开启一个相同的 TCP socket,然後呼叫 connect() 函式去连接 Server 指定的那个 port。当然了,和电话一样,如果 waiting queue 满了、与 Server 间线路不通、或是 Server 没提供此项服务时,你的连接就会失败。
(5)电信局查号台的总机接受了这通查询的电话後,它会转到另一个分机做服务,而总机本身则再回到等待的状态。Server 的 listening socket 亦是一样,当你呼叫了 accept(


相关文档:

Delphi多线程学习(7):事件Event

Event事件用法与Mutex差不多,但它可以使用:SetEvent(启动运行)ResetEvent(暂停运行)、PulseEvent(执行一次后立即暂停)。
       先看一下创建函数:CreateEvent(
                   ......

Delphi皮肤控件分析与QQ的皮肤变色功能

     关于界面美化方面,一直是一个脑壳疼的问题!以前一直偷懒,使用的三方控件!但是在使用了一段时间之后,都或多或少的有些问题!不是我说三方控件如
何如何的不好!只是三方控件多是庞大的一个肢体,要兼顾的用户群体很多,所以同时它要考虑的问题也增加了很多,然而一个程序出现Bug是在所难免的 ......

Delphi 2010 破解的方法[通用]

破解方法都是用了盒子 Delphi.Distiller.v1.85
费话不多说
 安装任意delphi 2010 正式版
 序列号是 HAAL-DANSGN-FZR5AG-M3BS
  安装完之后点击开始->Embarcadero RAD Studio 2010 ->Check for update
             &nb ......

delphi调用VC++6的DLL

1、保证你传递的参数要正确:C++中的char *对应PASCAL中的pchar。
2:C++中导出的函数的参数调用方式要和你DELPHI中的导入的函数参数调用方式要一致!
 例如:    C++的参数调用方式           对应的DELPHI的参数调用方式
           _declspec ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号