• 大小: 3.62MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-13
  • 语言: C#
  • 标签: C#  

资源简介

C#高性能大容量SOCKET并发完成端口例子IOCPDemo_NET_V4

资源截图

代码片段和文件信息

/*

Fast Memory Manager: BCB support 2.0

Description:
 FastMM support unit for BCB6 1.0. Loads FastMM4 on startup of the Borland C++
 Builder application or DLL.

Usage:
 1) Under the Project -> Options -> linker menu uncheck “Use Dynamic RTL“
    (sorry won‘t work with the RTL DLL).
 2) Add FastMM4.pas to your project and build it so that FastMM4.hpp is
    created.
 3) Add FastMM4BCB.cpp to your project.
 FastMM will now install itself on startup and replace the RTL memory manager.

Acknowledgements:
 - Jarek Karciarz Vladimir Ulchenko (Vavan) and Bob Gonder for their help in
   implementing the initial BCB support.
 - JiYuan Xie for doing an entire rewrite of this unit to allow leak reporting
   etc. under BCB.

Change log:
 Version 1.00 (15 June 2005):
  - Initial release. Due to limitations of BCB it cannot be uninstalled (thus
    no leak checking and not useable in DLLs unless the DLL always shares the
    main application‘s MM). Thanks to Jarek Karciarz Vladimir Ulchenko and Bob
    Gonder for their help.
 Version 1.01 (6 August 2005):
  - Fixed a regression bug (Thanks to Omar Zelaya).
 Version 2.00 (22 April 2008):
  - Rewritten by JiYuan Xie to implement leak reporting etc. (Thank you!)

*/

//#ifndef _NO_VCL

#pragma hdrstop
#include “FastMM4Messages.hpp“
#include “FastMM4.hpp“

#pragma option push
#pragma option -k- -d -vi- -O2 -b- -3 -a8 -pc -RT- -x -xd -r -AT -vG- -vG0- -vG1- -vG2- -vG3- -vGc- -vGt- -vGd-

#ifdef __cplusplus
extern “C“ {
#endif

#ifdef PatchBCBTerminate

#ifdef FullDebugMode
#ifndef LoadDebugDLLDynamically

#pragma link “FastMM_FullDebugMode.lib“

#if defined(RawStackTraces)
__declspec(dllimport) void __fastcall GetRawStackTrace(unsigned * AReturnAddresses
  unsigned AMaxDepth unsigned ASkipframes);
#else
__declspec(dllimport) void __fastcall GetframebasedStackTrace(unsigned * AReturnAddresses
  unsigned AMaxDepth unsigned ASkipframes);
#endif
__declspec(dllimport) void __fastcall LogStackTrace(unsigned * AReturnAddresses
  unsigned AMaxDepth char *ABuffer);
  
#endif
#endif

#pragma pack(push1)
typedef struct {
  unsigned char JmpInst; //E9
  int Offset;
} TRelativeJmp32 * PRelativeJmp32;

typedef struct {
  unsigned short JmpInst; //FF 25
  void * * DestPtr;
} TIndirectJmp32 * PIndirectJmp32;
#pragma pack(pop)

//Return true if write OK
bool __fastcall WriteMem(void * Location void * Data unsigned int DataSize)
{
  unsigned long OldProtect;
  
  if (VirtualProtect(Location DataSize PAGE_EXECUTE_READWRITE &OldProtect))
  {
    memmove(Location Data DataSize);

    FlushInstructionCache(GetCurrentProcess() Location sizeof(DataSize));
    VirtualProtect(Location DataSize OldProtect &OldProtect);

    return true;
  }
  else {
    return false;
  }
}

#define RelativeJmp32Inst  (0xE9)

//Return true if patch OK
bool __fastcall PatchProc(void * OldProc void * NewProc TRelativeJmp32 * Backu

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       12805  2014-02-21 14:58  NET完成端口测试结果.xlsx
     文件       11193  2012-08-18 00:23  测试结果.xlsx
     目录           0  2014-06-08 21:07  Bin\
     文件       31232  2010-04-04 18:02  Bin\borlndmm.dll
     文件      176128  2010-11-29 15:34  Bin\FastMM_FullDebugMode.dll
     文件     1529856  2014-02-21 11:34  Bin\IOCPDemoCln.exe
     文件     1137152  2013-11-26 16:33  Bin\IOCPDemoSvr.exe
     文件         139  2013-11-26 16:27  Bin\IOCPDemoSvr.ini
     文件     1636416  2013-11-26 16:33  Bin\IOCPDemoSvr.map
     文件      288768  2013-05-02 15:04  Bin\log4net.dll
     文件     1438186  2013-05-02 15:04  Bin\log4net.xml
     文件        1859  2014-04-25 11:39  Bin\NETUploadClient.application
     文件       19456  2014-04-25 11:39  Bin\NETUploadClient.exe
     文件         187  2014-03-22 21:47  Bin\NETUploadClient.exe.config
     文件        4425  2014-04-25 11:39  Bin\NETUploadClient.exe.manifest
     文件        1859  2014-04-06 11:43  Bin\NETUploadClient.vshost.application
     文件       22984  2014-04-07 09:45  Bin\NETUploadClient.vshost.exe
     文件         187  2014-03-22 21:47  Bin\NETUploadClient.vshost.exe.config
     文件        4425  2014-04-06 11:43  Bin\NETUploadClient.vshost.exe.manifest
     文件        3032  2014-03-31 13:44  Bin\SocketAsyncSvr.exe.config
     文件       22472  2014-06-08 20:20  Bin\SocketAsyncSvr.vshost.exe
     文件        3032  2014-03-31 13:44  Bin\SocketAsyncSvr.vshost.exe.config
     文件         490  2013-06-18 20:28  Bin\SocketAsyncSvr.vshost.exe.manifest
     目录           0  2014-02-28 14:24  Dcu\
     目录           0  2013-06-10 21:33  Delphi_Source\
     目录           0  2012-08-18 17:01  Delphi_Source\FastMM492\
     目录           0  2012-08-18 17:01  Delphi_Source\FastMM492\CPP Builder Support\
     文件       45724  2010-11-29 15:34  Delphi_Source\FastMM492\CPP Builder Support\FastMM4BCB.cpp
     目录           0  2012-08-18 17:01  Delphi_Source\FastMM492\Demos\
     目录           0  2012-08-18 17:01  Delphi_Source\FastMM492\Demos\Dynamically Loaded DLL\
     文件        1213  2010-11-29 15:34  Delphi_Source\FastMM492\Demos\Dynamically Loaded DLL\ApplicationForm.dfm
............此处省略372个文件信息

评论

共有 条评论