HP-Socket v5.1.1 for Windows

HP-Socket

  HP-Socket is a set of general high-performance TCP/UDP/HTTP communication framework, including server components, client components and Agent components. It is widely used in TCP/UDP/HTTP communication systems in various application scenarios. C++, C#, Delphi, E (easy language), Java, Python and other programming language interfaces. HP-Socket fully encapsulates the communication layer, and applications do not need to pay attention to any details of the communication layer; HP-Socket provides an API interface based on an event notification model, which can be easily and efficiently integrated into old and new applications.

  In order to allow users to learn and use HP-Socket easily and quickly, and quickly grasp the design ideas and usage methods of the framework, a large number of Demo examples (such as: PUSH model example, PULL model example, PACK model example, performance test example ) are carefully produced. and other programming language examples). HP-Socket for Linux will be released soon, so stay tuned.

  "HP-Socket for Windows v5.0 Development Guide"

----------------------------------------------------------------

Versatility

  • The only responsibility of HP-Socket is to receive and send byte streams, and it does not participate in the application's protocol parsing and other work.
  • HP-Socket interacts with applications through interfaces and is completely decoupled. Any application can integrate HP-Socket seamlessly as long as it implements the interface specification of HP-Socket.

Ease of use

  • Ease of use is crucial for all general-purpose frameworks. If it's too difficult to use, it's more convenient to write one yourself. Therefore, the interface of HP-Socket is designed to be very simple and uniform.
  • HP-Socket completely encapsulates all low-level communication details, and applications do not have to and cannot interfere with low-level communication operations. The communication connection is abstracted as the Connection ID, and the Connection ID is provided as the unique identification of the connection to the application to handle different connections.
  • HP-Socket provides receiving models such as PUSH / PULL / PACK. Applications can flexibly choose to process encapsulation and unpacking in manual, semi-automatic or fully automatic ways. The PULL / PACK receiving model can greatly reduce the complexity of encapsulation and unpacking processing. Reduce the chance of error.

high performance

  • Client component: Based on the Event Select communication model, communication operations are performed in a separate thread to avoid mutual interference with the main thread or other threads. Each component object manages a Socket connection.
  • Server component: Based on the IOCP communication model, combined with technologies such as buffer pools and private heaps, it supports ultra-large-scale connections and achieves efficient memory management in high concurrency scenarios.
  • Agent component: For application scenarios such as proxy server or transit server, the server itself also acts as a client to initiate large-scale connections to other servers. An Agent component object can manage multiple Socket connections at the same time; the Agent component and the Server component use the same technical architecture. A client component that can be used as a proxy server or a relay server.

Scalability

  The application can adjust various performance parameters of HP-Socket (such as the number of worker threads, size of the buffer pool, sending mode and receiving mode, etc.) according to different capacity requirements, communication scale and resource conditions, etc., and optimize resource allocation , while meeting application requirements without wasting resources excessively.

   (Project homepage: click here , download address: click here )


*** v5.1.1 update ***

 > Add pause reception function

-----------------

  1. All Server/Agent/Client components add 'pause data reception' function (except UDP Server components)
  2. API update:
    1) HP_Server_PauseReceive (increase)
    2) HP_Server_IsPauseReceive (increase)
    3) HP_Agent_PauseReceive (increase)
    4) HP_Agent_IsPauseReceive (increase)
    5) HP_Client_PauseReceive (increase)
    6) HP_Client_IsPauseReceive (increase)

 > Other updates:

-----------------

  1. TCP Agent adds the method HP_Agent_ConnectWithExtra() to support binding additional data before the connection is completed
  2. The version of the common code package vc-common-src is upgraded to v2.3.22
  3. OpenSSL version upgraded to 1.1.0g

*** v5.0.1 update ***

 > IPv6 support

-----------------

  1. All communication components support IPv6
  2. The component interface has not changed, and the component automatically recognizes IPv4/IPv6 through the incoming address parameter
  3. API update:
    1) enum En_HP_IPAddrType (increase)
    2) struct HP_TIPAddr (increase)
    3) SYS_GetIPv4InAddr (delete)
    4) SYS_GetOptimalIPByHostName (delete)
    5) SYS_IsIPAddress (modified)
    6) SYS_GetIPAddress (modified)
    7) SYS_EnumHostIPAddresses (increase)
    8) SYS_FreeHostIPAddresses (increase)

 > SSL Communication Components

-----------------

  1. Multiple SSL certificate support, each communication component object can use a different SSL certificate
  2. The communication component object is bound to an independent SSL Context, replacing the globally unique SSL Context of the old version
  3. API update:
    1) HP_SSL_Initialize (delete)
    2) HP_SSL_Cleanup (delete)
    3) HP_SSL_AddServerContext (delete)
    4) HP_SSL_IsValid (delete)
    5) HP_SSLAgent_SetupSSLContext (increase)
    6) HP_SSLClient_SetupSSLContext (increase)
    7) HP_SSLServer_SetupSSLContext (increase)
    8) HP_SSLServer_AddSSLContext (increase)
    9) HP_SSLAgent_CleanupSSLContext (increase)
    10) HP_SSLClient_CleanupSSLContext (increase)
    11) HP_SSLServer_CleanupSSLContext (increase)

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326543171&siteId=291194637