==========================================================================================
v3.2.2 upgrade :
==========================================================================================

> Increase some methods for helps:
-----------------

  1. Batch sending methods: SendPackets()
        1) IClient / IServer / IAgent add the sending methods: SendPackets(dwConnID, pBuffers[], iBufferCount)
        2) For TCP component - send all packets in order
        3) For UDP component - make all the packets combined into one packet and send (the length of the packet can not be greater than the maxinum of length of a UDP packet which is set up)
  2. small files sending methods: SendSmallFile()
        1) ITcpClient / ITcpServer / ITcpAgent add the small files sending methods: SendSmallFile(dwConnID, lpszFileName, pHead, pTail)
        2) By the parameters: pHead and pTail,each can add some definitions int the files heads and tails
        3) SendSmallFile() only send the files whose size small than  4096 KB
  3. HPSocket.dll and HPSocket4C.dll add following export methods:
        1) SYS_WSAGetLastError():call the system's WSAGetLastError()
        2) SYS_SetSocketOption():call the system's setsockopt()
        3) SYS_GetSocketOption():call the system's getsockopt()
        4) SYS_IoctlSocket()           :call the system's ioctlsocket()
        5) SYS_WSAIoctl()               :call the system's WSAIoctl()

> update instructions:
-----------------

  1. HP-Socket v3.2.1 or previous versions for applications can upgrade to HP-Socket v3.2.2 safely

==========================================================================================
v3.2.1 upgrade:
==========================================================================================

> add communication components TcpAgent / TcpPullAgent :
-----------------

  1. for the proxy server and transit server etc. , server can be the client and launche a large-scale service connections to other servers.
  2. TcpClient / TcpPullClient basic on  Event Select communication model,every component object manages one Socket and open a thread ,but the above scenario is not suitable.
  3. TcpAgent / TcpPullAgent basic on IOCP communication model,one componet object manages many Sockets,for the clients communication components of the proxy server and transit server.
  4. TcpAgent / TcpPullAgent methods are easy to use and provide following interface methods:
         1) notice interface methods:
           OnPrepareConnect(CONNID dwConnID, SOCKET socket)
            OnConnect(CONNID dwConnID)
            OnSend(CONNID dwConnID, const BYTE* pData, int iLength)
            OnReceive(CONNID dwConnID, const BYTE* pData, int iLength)    //(Push model)
            OnReceive(CONNID dwConnID, int iLength)                        //(Pull model)
            OnClose(CONNID dwConnID)
            OnError(CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode)
            OnAgentShutdown()
         2) main operating methods:
           Start(LPCTSTR pszBindAddress = nullptr, BOOL bAsyncConnect = TRUE)
            Stop()
            Connect(LPCTSTR pszRemoteAddress, USHORT usPort, CONNID* pdwConnID = nullptr)
            Send(CONNID dwConnID, const BYTE* pBuffer, int iLength, int iOffset = 0)
            Disconnect(CONNID dwConnID, BOOL bForce = TRUE)
            Fetch(CONNID dwConnID, BYTE* pData, int iLength)    //(Pull model)
  5. add TcpAgent / TcpPullAgent excemples for user:
        1) Agent-PFM
        2) Agent-Pull
        3) Agent-4C
  6. add TcpAgent + TcpServer HTTP proxy server excemple:HttpProxy

> add HPSocket for Java SDK:
-----------------

  1. provide Java development package:hpsocket-3.2.1.jar(by JNA ,now only supports Windows platform)
  2. running environment:JDK 1.6+,JVM runs server mode("java -server",in client mode,the properties affected)
  3. add the project TestEcho-4J,show the HPSocket4J using methods (includes Pull model examples and sample performance tests)
  4. MBCS and Unicode version are in the jars: org.jessma.hpsocket.mbcs and org.jessma.hpsocket.unicode
  5. HPSocket for Java SDK provides following communication components :
        1) TcpServer:TCP communication server component ,supports  PUSH/Pull model
        2) TcpClient:TCP communication client component ,supports  PUSH/Pull model
        3) TcpAgent :TCP communication  Agent component ,supports  PUSH/Pull model
        4) UdpServer:UDP communication server component ,supports  Push model
        5) UdpClient:UDP communication client component ,supports  Push model
  6. HPSocket4J using methods (using TcpAgent for example):
       /* 0: add the jars into the project: hpsocket-3.2.1.jar and jna-4.1.0.jar */
       
        /* 1: create communication component object  */
        TcpAgent agent = TcpAgent.create(Mode.PUSH);
       
        /* 2: set the callback function object  */
        // (optional )
        agent.setCallBackOnPrepareConnect(new OnPrepareConnectImpl());
        // (optional )
        agent.setCallBackOnConnect(new OnConnectImpl());
        // (required )Push model need to set OnReceive callback function object
        agent.setCallBackOnReceive(new OnReceiveImpl());
        // (required )Pull model need to set OnPullReceive callback function object
        // agent.setCallBackOnPullReceive(new OnPullReceiveImpl());
        // (optional )
        agent.setCallBackOnSend(new OnSendImpl());
        // (required )
        agent.setCallBackOnClose(new OnCloseImpl());
        // (required )
        agent.setCallBackOnError(new OnErrorImpl());
        // (optional )
        agent.setCallBackOnAgentShutdown(new OnAgentShutdownImpl());
       
        /* 3:start communication component  */
        agent.start("127.0.0.1", false);
       
        /* 4:connect server */
        agent.connect("localhost", (short)5555, pdwConnID);
       
        /* 5:handle communication data */
        // response OnReceive / OnPullReceive events and receive data
        // use    agent.send(dwConnID, data, data.length) to send data
       
        /* 6:close communication component  */
        agent.stop();
       
        /* 7:destroy communication component  */
        TcpAgent.destroy(agent);

> optimize data transmission / reception strategies:
-----------------

  1. Server and Agent components provide the following three types of data transmission policy:
        1)PACK - packing mode(default)    :try to send data formmultiple operetions together to send and add transmission efficiency.
        2)SAFE - sage mode        :try to make data formmultiple operetions together to send,control the transmission rate ,and avoid buffer overflow
        3)DIRECT - direct mode        :each sending operation is delivered directly ,for when the loading is not high but it requires real-time high places.
  2. Server and Agent components provide the following two data-accept events:
        1)SERIAL - serial mode(default):trigger the same connection in the order: OnReceive and OnClose/OnError event
        2)PARALLEL - parallel mode    :in different communication threads , trigger the same connection OnReceive and OnClose/OnError event in the same time

> other updates :
-----------------

  1. IServer' GetClientAddress() method changes the name to : GetRemoteAddress()
  2. IClient' Send() method deletes the parameter: “CONNID dwConnID”
  3. IClient/IServer/IAgent' Send() method adds the pointer offset parameter “int iOffset” for sending data buffer
  4. add EnSendPolicy enumerated type,IServer/IAgent add sending mode setting method: SetSendPolicy()
  5. add EnRecvPolicy enumerated type,IServer/IAgent add receving mode setting method: SetRecvPolicy()
  6. IServer/IAgent add method:BOOL GetAllConnectionIDs(),get all connected CONNID
  7. IUdpServer add method:SetPostReceiveCount(),set Receive Number of predelivery
  8. EnServerError / EnClientError enumerated type unite into EnSocketError
  9. EnSocketError / EnHandleResult / EnFetchResult enumerated type moves out of the original class
  10. IClient/IServer/IAgent add method:BOOL GetPendingDataLength() to get the length of the data which is not issued
  11. HPSocket4C.dll add method SendPart(),supports assigning the pointer offset parameter for data buffer
  12. add HPSocket for C# SDK(by int 2e )
  13. add HPSocket easy language support lib(by Yecate )
  14. public code package vc-common-src upgrade tp v2.3.5(reference:vc-common-src v2.3.5' Change Log)

> update instructions:
-----------------

  1. HP-Socket v3.2.1 Comply HP-Socket v3.1.3 and previous versions in the functions
  2. interface changes,it's needed to modify the programcode. Notice:the program can be replaced directly by v3.1.3' DLL
  3. EnServerError / EnClientError enumerated type unite into EnSocketError,notice some of the enumerated tyoe changed

==========================================================================================
v3.1.3 upgrade:
==========================================================================================

> add other language Demo:
-----------------

  1. C#
  2. Delphi
  3. E language

> Bug Fixed:
-----------------

  1. repair IP address misjudgment bug:
        1) when client component connnecting to the server,if the IP of the server has full bit(12个numbers:‘AAA.BBB.CCC.DDD’),then judged as the domain name
        2) affect component :all TCP/UDP client components
        3) affect version:v3.1.2 and all previous versions
  2. repair the domain name and host name's IP parsing error bug:
        1) when client component connecting to the server by the domain name or host name,it may be resolved to the wrong IP address.
        2) affectcomponent :all TCP/UDP client components
        3) affect versions:v3.1.2 and all previous versions

> update instructions:
-----------------
1、use HP-Socket v3.1.2 or previous versions for applications can upgrade to HP-Socket v3.1.3 safely

==========================================================================================
v3.1.2 upgrade:
==========================================================================================

> alter the Server component's OnClose() / OnError() event's trigger rules:
-----------------

  1. The TCP/UDP Server component of original versions,when you close a connection ,it might also fire the OnClose() event and several OnError() events
  2. for this possibility,the application need to make OnClose() / OnError() to process the event synchronously
  3. from v3.1.2 ,when there are OnClose() / OnError() events occuring together,component only notice the first event ,and ignore the left event.
  4. Therefore,when the application processes the OnClose() / OnError() event , it not need to deal with syschronization,and reduce the possibile bugs and writing or testing code burdens.

Example One:
    --------------------------------------------------------------------------------------
    ISocketListener::EnHandleResult CServerDlg::OnClose(CONNID dwConnID)
    {
        // original versions:there are the concurrency of OnClose()/OnError(),put the code in the critical area and test the returned value

        CCriSecLock locallock(m_csPkgInfo);    // <-- critical area

        PVOID pInfo = nullptr;

        if(m_Server->GetConnectionExtra(dwConnID, &pInfo) && pInfo != nullptr)    // <-- testing the returned value
        {
            m_Server->SetConnectionExtra(dwConnID, nullptr);
            delete pInfo;
        }
    }

Example two:
    --------------------------------------------------------------------------------------
   ISocketListener::EnHandleResult CServerDlg::OnClose(CONNID dwConnID)
    {
        // v3.1.2 version:only receive one OnClose()/OnError() event ,can remove the code out of the critical area and testing the code.

        PVOID pInfo = nullptr;
        m_Server->GetConnectionExtra(dwConnID, &pInfo);
        ASSERT(pInfo != nullptr);

        delete pInfo;
    }

> other updates :
-----------------

  1. change TCP Server default parameters :
        1) DEFAULT_SOCKET_LISTEN_QUEUE    : 300
        2) DEFAULT_ACCEPT_SOCKET_COUNT    : 300
        3) DEFAULT_FREE_SOCKETOBJ_POOL    : 150
        4) DEFAULT_FREE_SOCKETOBJ_HOLD    : 450
        5) DEFAULT_FREE_BUFFEROBJ_POOL    : 300
        6) DEFAULT_FREE_BUFFEROBJ_HOLD    : 900
  2. change  UDP Server default parameters :
       1) DEFAULT_FREE_SOCKETOBJ_POOL    : 150
        2) DEFAULT_FREE_SOCKETOBJ_HOLD    : 450
        3) DEFAULT_FREE_BUFFEROBJ_POOL    : 300
        4) DEFAULT_FREE_BUFFEROBJ_HOLD    : 900

> update instructions:
-----------------
1、 HP-Socket v3.1.1 or previous versions for applications can upgrade to HP-Socket v3.1.2 safely

==========================================================================================
v3.1.1 upgrade:
==========================================================================================

> add export the C function's dynamic link library: HPSocket4C.dll:
-----------------

  1. add the code files: HPSocket4C.h and HPSocket4C.cpp,for creating  HPSocket4C.dll
  2. export the C function and make other language(as:C/C#/Delphi etc)to use HPSocket easily
  3. HPSocket4C.dll using methods
      method one:
        --------------------------------------------------------------------------------------
            (0) (C/C++ programs)include HPSocket4C.h header files
            (1) call  ::Create_HP_XxxListener() function to create listener object
            (2) call  ::Create_HP_Xxx(pListener) function to create  HPSocket object
            (3) call  ::HP_Set_FN_Xxx_OnYyy(pListener, ...) function to set the call back function of listener
            (4) call export functions to operate HPSocket object
            (5) ...... ......
            (6) call  ::Destroy_HP_Xxx(pSocket) function to destory HPSocket object
            (7) call  ::Destroy_HP_XxxListener(pListener) functions to destory the listener object
    method two:
        --------------------------------------------------------------------------------------
            (1) the application need to use the export functions of the package to the specific language class.
            (2) after packaging encapsulated,use HPSocket in the OOP way
  4. HPSocket4C.dll dynamic link library (release version)
        (1) x86/HPSocket4C.dll        - (32bit/MBCS/Release)
        (2) x86/HPSocket4C_D.dll    - (32bit/MBCS/DeBug)
        (3) x86/HPSocket4C_U.dll    - (32bit/UNICODE/Release)
        (4) x86/HPSocket4C_UD.dll    - (32bit/UNICODE/DeBug)
        (5) x64/HPSocket4C.dll        - (64bit/MBCS/Release)
        (6) x64/HPSocket4C_D.dll    - (64bit/MBCS/DeBug)
        (7) x64/HPSocket4C_U.dll    - (64bit/UNICODE/Release)
        (8) x64/HPSocket4C_UD.dll    - (64bit/UNICODE/DeBug)

> start the Buffer Pool caching mechanism:
-----------------

  1. Common/Src adds the code file : bufferpool.h and bufferpool.cpp ,and achieve the Buffer Pool caching mechanism
  2. by the Buffer Pool caching mechanism and enhance the efficiency of memory usage,reduce the dynamic memory allocation and release operation and avoid the memory hole
  3. CTcpClient use CItemPool and TItemList to achieve transmit buffer
  4. CUdpClient use CItemPool and TItemList to achieve transmit buffer
  5. CTcpPullClient use CItemPool and TItemList to achieve transmit bufferand PULL bufferand
  6. CTcpPullServer use CBufferPool and TBuffer to achieve PULL bufferand

> other updates :
-----------------

  1. IServer adds the interface method DisconnectLongConnections() to disconnect all long connections.
  2. IServer deletes interface method GetConnectionCriSec()
  3. IClient adds methods Get/SetFreeBufferPoolSize()、Get/SetFreeBufferPoolHold() to set the size and threshold of Buffer Pool
  4. IPullServer deletes  methods  Get/SetFreePullBufferPool()、Get/SetFreePullBufferHold()
  5. HPSocket.dll and HPSocket4C.dll use /MT(d) for the options recompile,eliminate dependency on the runtime library
  6. add the TestEcho-4C testing program,show the using methods of HPSocket4C.dll

> update instructions:
-----------------

  1. HP-Socket v3.0.2 or previous versions for applications can upgrade to HP-Socket v3.1.1 safely
  2. if you want to import HPSocket4C.dll into the project , see the way of using HP-Socket,refer to the example project TestEcho-4C

==========================================================================================
v3.0.2 upgrade:
==========================================================================================

> HP-Socket complied as a dynamic link library:
-----------------

  1. applications can use the HP-Socket by the source code or importing the dynamic link library mode.
  2. dynamic link library using methods
        method one:
        -----------------------------------------------------------------------
            (0) the application contains the SocketInterface.h and HPSocket.h head files
            (1) call  HP_Create_Xxx() function to create  HPSocket object
            (2) after using the call  HP_Destroy_Xxx() function to destroy HPSocket object
        method two:
        -----------------------------------------------------------------------
            (0) the application contains the SocketInterface.h and HPSocket.h head files
            (1) create the CXxxWrapper wrapper and use the HPSocket object by the smart pointer wrapper.
  3. dynamic link library(release version)
        (1) x86/HPSocket.dll    - (32bit/MBCS/Release)
        (2) x86/HPSocket_D.dll    - (32bit/MBCS/DeBug)
        (3) x86/HPSocket_U.dll    - (32bit/UNICODE/Release)
        (4) x86/HPSocket_UD.dll    - (32bit/UNICODE/DeBug)
        (5) x64/HPSocket.dll    - (64bit/MBCS/Release)
        (6) x64/HPSocket_D.dll    - (64bit/MBCS/DeBug)
        (7) x64/HPSocket_U.dll    - (64bit/UNICODE/Release)
        (8) x64/HPSocket_UD.dll    - (64bit/UNICODE/DeBug)

> other updates :
-----------------

  1. move the component interface and the statement listener to SocketInterface.h
  2. IServer add interface methods GetConnectionCount()/GetConnectPeriod() and  each gets the number of connections and the time of connection.
  3. IServer interface methods GetListenAddress()/GetClientAddress()'s CString& change the parameter to LPTSTR
  4. IClient interface methods GetLocalAddress()'s CString& change the parameter to LPTSTR
  5. the function's CString& in SocketHelper.h change the parameter to LPTSTR
  6. the example projects: TestEcho-Pull and TestEcho-PFM use HP-Socket by importing the dynamic link library mode

> update instructions:
-----------------

  1. HP-Socket v3.0.1 or previous versions for applications can upgrade to HP-Socket v3.0.2
  2. Beacause some parameters of the interface methods have changed ,so please alter it refer to the example project.
  3. if the project want to use HP-Socket by the way of a dynamic link library,please refer to the TestEcho-Pull or TestEcho-PFM example project.

==========================================================================================
v3.0.1 upgrade:
==========================================================================================

> add UDP communication component :
-----------------

  1. add two UDP communication components :CUdpServer as the server component and CUdpClient as the client component
  2. server component  CUdpServer use IOCP communication model
  3. client component  CUdpClient use Event Select communication model
  4. UDP communication component Interface is the same of the original TCP communication component ,simple and practical
  5. UDP communication component includes communication line automatic monitoring mechanism
  6. add UDP communication component example project: TestEcho-UDP

> Code refactoring and optimization:
-----------------

  1. Specification the name of all Interface、class and code file
  2. Refactoring and optimization a lot of component code
  3. server component add the mechanism of read-write lock,effect balance deal-performance and safety
  4. server component's Socket object Cache list set locking the time,upgrade the degree of access-safety

> update instructions:
-----------------

  1. the Application of using HP-Socket v2.2.3 can safely upgrade to HP-Socket v3.0.1
  2. because of renaming a lot of Interface、class and code file ,so when system upgrading , this need to relevant change

==========================================================================================
v2.2.3 upgrade:
==========================================================================================

> the data type of connect ID change to ‘CONNID’:
-----------------

  1. in SocketHelper.h ,it defines as CONNID data type(default:typedef ULONG_PTR CONNID)
  2. Application can make  CONNID defined as it hoped type(eg:ULONG / ULONGLONG ...)
  3. order to easy to transplant and aegis,Application's everywhere should use the‘CONNID’ type quote connect ID

> server  Socket component support as every connection tie attached data:
----------------

  1. IServerSocket and CIocpServer add method  Get/SetConnectionExtra()
  2. Through the above two method ,application can make every connection tie random attached data and take it out

> other updates :
-----------------

  1. broaden CIocpServer's the limit of the number of the biggset IOCP work thread  (64 change to 500)
  2. server  Socket component's Disconnect()  method adds one marked parametric ‘bForce’,directive whether forcibly disconnect connection
  3. change connect ID's generate rule , avert generated number is 0 connection ID

==========================================================================================
v2.2.2 upgrade:
==========================================================================================

> optimization heartbeat checking's interrelated function:
-----------------

  1. IServerSocket and IClientSocket ,theirs Get/SetKeepAliveTimes()  method changes to Get/SetKeepAliveTime()
  2. CIocpServer and CClientSocket ,theirs default KeepAliveTime attribute changes to 5000
  3. CIocpServer and CClientSocket ,theirs default KeepAliveInterval attribute changes to 3000

==========================================================================================
v2.2.1 upgrade:
==========================================================================================

> Pull modelsupport :
-----------------

  1. ISocketListener add the method for the Pull model to get the data receiving notification :OnReceive(dwConnID, int)
  2. add PULL Socket Interface: IPullSocket,the interface's Fetch(dwConnID, pBuffer, iLength)  method to catch the data of communication

> Server:
-----------------

  1. server  Socket Interface: ISocketServer renamed to IServerSocket
  2. add PULL Server Socket Listrner abstract class: CPullServerSocketListener
  3. add PULL Server Socket Listrner: IPullServerSocket
  4. add PULL Server Socket Implementation class : CIocpPullServer

> Client:
-----------------

  1. client  Socket Interface: ISocketClient renamed to IClientSocket
  2. client  Socket Implementation class :CSocketClient renamed to CClientSocket
  3. add PULL Client Socket Listrner abstract class: CPullClientSocketListener
  4. add PULL Client Socket Interface: IPullClientSocket
  5. add PULL Client Socket Implementation class: CPullClientSocket

> other upgrade:
-----------------

  1. add PULL Socket testing program: TestEcho-Pull
  2. In the SocketHelper.h (.cpp) there are some structures for help.

> update instructions:
-----------------

  1. use HP-Socket v2.1.1 or previous versions for applications can upgrade to v2.2.1 safely
  2. beacause the names of  ISocketServer、ISocketClient and CSocketClient have changed,therefore,the application need to modifie the name and header file name .

==========================================================================================
v2.1.1 upgrade:
==========================================================================================

> Server:
-----------------

  1. IServerSocketListener cancel OnPrepareSocket(connID, socket) notification method
  2. IServerSocketListener alter OnAccept((connID, soClient) notification method ,add the parameter :‘soClient’,to achieve the original OnPrepareSocket(connID, socket) notification method function
  3. IServerSocketListener add OnPrepareListen(soListen) notification method ,to set the listerner to the SOCKET Options of socket
  4. ISocketServer add method  GetListenAddress(strAddress, usPort),to get the address information of the listen to Socket
  5. ISocketServer add method  GetClientAddress(connID, strAddress, usPort),for a connection of a client address.
  6. the optimization of Socket buffer pools and the managements of memory block buffer pool.
  7. change the method names for some roperty-accessings
  8. fix bugs : deadlock phenomenon may happen under special circumstances.

> Client:
-----------------

  1. ISocketServer add method  GetLocalAddress(strAddress, usPort),for get the  address information of Client Socket.
  2. Optimize the data-transmission mode , and improve the efficiency of data transmission

> other upgrade:
-----------------

  1. TestEcho and TestEcho-PFM testing program optimization
  2. in SocketHelper.h (.cpp) , there are some functions for help
  3. for SocketHelper.h ,there are the comments of all interfaces ,classes and methods defined.

==========================================================================================
v2.0.1 upgrade:
==========================================================================================

> Server
-----------------

  1. IServerSocketListener add OnPrepareSocket(connID, socket) notice the method  for set the SOCKET Options or filter client connection before using the socket
  2. ISocketServer add method  Disconnect(connID) to disconnect the client connections
  3. add IServerSocketListener' subclass CServerSocketListener,provide a default(full) notification processing method

> Client:
-----------------

  1. IClientSocketListener add OnPrepareSocket(connID, socket) notification method for set the SOCKET Options before using the socket
  2. support asynchronous Connect:ISocketServer  Start() method add one parameter (BOOL bAsyncConnect) set whether to use the asynchronous Connect
  3. add IClientSocketListener subclass: CClientSocketListener,provide default(null)notification handle methods。
  4. repair BUG:appear package loss when  its ultra-high load

> other upgrade:
-----------------

  1. support  Windows x64 platform
  2. optimzate TestEcho and TestEcho-PFM testing program.
  3. TestEcho client adds “asychronous connection” program for example.
  4. TestEcho server adds “connection filter” and “initiative disconnect ” programs for example

HP-Socket v3.2.2的更多相关文章

  1. Code Project精彩系列(转)

    Code Project精彩系列(转)   Code Project精彩系列(转)   Applications Crafting a C# forms Editor From scratch htt ...

  2. 高性能 Socket 组件 HP-Socket v3.2.1 正式发布

    HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C ...

  3. 高性能 Socket 组件 HP-Socket v3.1.3 正式发布

    HP-Socket 是一套通用的高性能 Windows Socket 组件,提供服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP/ ...

  4. 【新年呈献】高性能 Socket 组件 HP-Socket v3.1.2 正式发布

    HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...

  5. 【圣诞呈献】高性能 Socket 组件 HP-Socket v3.1.1 正式发布

    HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...

  6. 高性能 Windows Socket 组件 HP-Socket v3.0.2 正式发布

    HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...

  7. 高性能 Windows Socket 组件 HP-Socket v3.0.1 正式发布

    HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...

  8. 高性能 Socket 组件 HP-Socket v3.2.1-RC5 公布

    HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...

  9. 高性能 Socket 组件 HP-Socket v3.2.1-RC4 公布

    HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...

  10. 高性能 Socket 组件 HP-Socket v3.2.1-RC2 公布

    HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...

随机推荐

  1. jmeter本身的一个bug记录

    1.使用jmeter测http接口 2.断言接口返回的内容是否包含某串文本 3.结果:总是返回断言失败,即使接口返回的内容包含了该文本 接口返回的值为: {"code":" ...

  2. 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(三)一笔画

    #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> us ...

  3. CSS基础一

    css作用 css将内容和样式相分离,便于修改样式.HTML 写网页的内容,CSS写内容的样式 CSS构成 p{ /*p为标签,也可以称为选择器,选择包住的内容的格式*/ font-size:12px ...

  4. 小白的CTF学习之路4——内存

    明天要进行二模考试了,沉住气,加油,能过 内存是学C路上必不可少的一环,一定要非常认真的去学 内存的物理结构: ROM:只读内存——早期的手机 RAM:读写(数据断点既消) DRAM:经常更新 SRA ...

  5. mybatisGenerator代码生成器

    使用mybatisGenerator可以生成实体类,Mapper接口以及对应xml文件.本文介绍如何使用. 可以直接从本人github下载,只需按照如下步骤即可: 1.导入项目至idea中,项目结构如 ...

  6. asp.net 抽象方法和虚方法的用法区别,用Global类重写Application_BeginRequest等方法为例子

    不废话,直接贴代码 public abstract class LogNetGlobal : System.Web.HttpApplication { protected void Applicati ...

  7. opencv2.4.13+python2.7学习笔记--OpenCV中的图像处理--图像轮廓

    阅读对象:无要求. 1.代码 ''' OpenCV中的轮廓 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.为了更加准确,要使用二值化图像.在寻找轮廓之前,要进行阈值化 ...

  8. scrollIntoView() 调用元素就可以出现在视窗中

    /* 如果滚动页面也是DOM没有解决的一个问题.为了解决这个问题,浏览器实现了一下方法, 以方便开发人员如何更好的控制页面的滚动.在各种专有方法中,HTML5选择了scrollIntoView() 作 ...

  9. XSS攻击 CSRF攻击

    XSS攻击: 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆, 故将跨站脚本攻击缩写为XSS.恶意攻击者 ...

  10. python学习,excel操作之xlrd模块常用操作

    import xlrd ##工作表## #打开excel f = xlrd.open_workbook("test.xlsx") file = f.sheet_by_name(&q ...