摘要:1 unit Unit1; 2 3 interface 4 5 uses 6 WinSock2, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls, ExtCtrls; 8 9 type 10 //单IO数据结构 11 LPER_IO_OPERATION_DATA = ^TPER_IO_OPERATION_DATA; 12 TPER_IO_OPERATION_DATA...
阅读全文
摘要:1 unit Unit1; 2 3 interface 4 5 uses 6 WinSock2, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls, ExtCtrls; 8 9 type 10 TWorkThread = class(TThread) 11 private 12 FMemo: TMemo; 13 FBuff: array [0..10]...
阅读全文
摘要:WSAEventSelect类似于WSAAsycnSelect,区别就是当Socket上有“事件”时,传递一个Event而不是Windows消息。 1 unit Unit1; 2 3 interface 4 5 uses 6 WinSock2, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls, ExtCtrls; 8 9 type 10 TWorkThread = class(T...
阅读全文
摘要:1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls, WinSock, ExtCtrls; 8 9 type 10 TWorkThread = class(TThread) 11 private 12 FClientSocket: TSocket; 13 FMemo: TMem...
阅读全文
摘要:共有五种类型的套接字I/O模型,可让Winsock应用程序对I/O进行管理,它们包括: select(选择)、WSAAsyncSelect(异步选择)、WSAEventSelect(事件选择)、overlapped(重叠)以及 completion port(完成端口)。WSAAsyncSelect(异步选择)是最简单也最好理解的模式,因为用这个模式你都不需要明白多线程的编程知识~ 话不多说,先上代码(下面的代码不包含异常处理,仅为学习使用): 1 //先在单元头部定义消息 2 const 3 WM_SOCKET = WM_USER + 55; 4 5 //然后...
阅读全文
摘要:1 var 2 WSData: WSAData; 3 ServerSocket: TSocket; 4 ClientSocket: TSocket; 5 LocalAddr: TSockAddrIn; 6 ClientSocketAddr: TSockAddrIn; 7 ClientSocketAddrLen: Integer; 8 SocketMode: Integer; 9 begin 10 //初始化Winsock 11 WSAStartUp($202, WSData); 12 13 //创建套接字 1...
阅读全文
|