HP - Socket is a set of general high-performance TCP/UDP/HTTP communication framework that contains the server-side components, client components and Agent components, are widely used in various application scenarios of the TCP/UDP/HTTP communication system, to provide the C/C + +, C #, Delphi, E (language), Java, Python programming languages such as interface, HP - Socket for communication layer to realize fully encapsulated, applications don't need to pay close attention to any details of communication layer; HP - Socket API interface based on event notification model, can be very simple effectively integrated into the old and new application,
In order to let users can quickly learn and use HP - Socket, quickly grasp the framework design thought and method of use, we elaborate the massive Demo sample (such as: PUSH model example, PULL model example, performance test sample and other programming language examples), HP - Socket is currently running on the Windows platform, is now being nervous and orderly development of Linux version, please look,
* HP - Socket's official website: http://www.jessma.org
* HP - Socket project home page: https://github.com/ldcsaa/HP-Socket
* HP - Socket development documentation: http://www.oschina.net/p/hp-socket/doc
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
[common]
1, HP - the only duty is to receive and send byte stream Socket, not participate in the application protocol parsing,
2, HP - Socket and applications that interact through interfaces, and completely decoupled, any application as long as it implements the HP - Socket interface specification can be seamlessly integrating HP - Socket,
[ease]
1, ease of use is crucial for all common framework, if too difficult to use is not as good as their own efforts to write a more convenient, therefore, the HP - Socket interface design is very simple and unified,
2, HP - Socket completely encapsulates all the underlying communication details, applications do not have to also cannot intervene the underlying communication operation, the communication Connection was abstracted as the Connection ID, the Connection ID as the Connection of a unique identifier for the application to deal with different Connection,
3, HP - Socket provide PUSH/PULL/PACK model, the application can choose flexible way by hand, semi-automatic or fully automatic approach to unpack, PULL/PACK receiving model in reducing sealing solution of packet processing complexity at the same time can greatly reduce the error probability,
[performance]
Client components: communication model based on Event the Select, in a separate thread of execution communication operation, to avoid interference between the main thread or other threads, each component object management a Socket connection,
Server components: based on IOCP communication model, and combining with the buffer pool, Private Heap (Private Heap) technology, such as support for vlsi connection, efficient memory management under high concurrency scene,
Agent components: for the proxy server or transit server application scenarios, such as the server itself as the client launched large-scale connections to other server, an Agent component object can manage multiple Socket connection at the same time; Agent architecture, components and Server components using the same technology can be used as a proxy Server or transit Server client components,
[scalability]
Applications can according to the requirements of the different capacity, communication scale and resources such as realistic scenario adjustment HP - all performance parameters of the Socket (such as: the number of worker threads, the size of the buffer pool, delivery mode and receiving mode, etc.), optimizing the allocation of resources, at the same time in the meet the application requirements need not excessive waste of resources,
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* * * * * * version 5.0.1 update
& gt; IPv6 support:
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
1, all communication components support IPv6
2, and no change of component interfaces, component by the incoming address parameter automatic identification IPv4/IPv6
3, the API update:
1) enum En_HP_IPAddrType (increase)& gt; SSL communication components:
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 (increased)
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
More than 1, support SSL certificates, each communication component object can use different SSL certificate
2, the communication component object binding independent SSL Context, replace the old version of the globally unique SSL Context
3, the API update:
1) HP_SSL_Initialize (delete)& gt; Other update:
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 (increased)
9) HP_SSLAgent_CleanupSSLContext (increase)
10) HP_SSLClient_CleanupSSLContext (increase)
11) HP_SSLServer_CleanupSSLContext (increase)
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
1, update the Demo: all Demo support IPv6; All SSL Demo support mechanism of the new certificate
2, public code package vc - common - SRC version upgrade to v2.3.20
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* * * * * *
& gt; HTTP cookies management support:
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
1, new Cookie manager, can be in different connections, sharing between different component object cookies
2, the Cookie manager to achieve the function of the standard HTTP cookies, support Max - Age, expires, httpOnly, secure
3, Cookie manager supports cookies serialization and deserialization
4, IHttpClient and IHttpAgent components can pass SetUseCookie () method to set whether to open the Cookie function
& gt; Update: HTTP Sync Client communication component
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
1, Create_HP_HttpSyncClient and Create_HP_HttpsSyncClient method to increase the optional parameters pListener
2, if pListener not empty all communication events will be monitored HttpSyncClient pListener to
& gt; Other update:
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
1, Demo update: HttpProxy TestEcho - Http, TestEcho - Http - 4 c
2, public code package vc - common - SRC version upgrade to v2.3.18
3, OpenSSL version upgrade to 1.1.0 e
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
v4.1.3 update * * * * * *
& gt; WebSocket support:
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
1, all HTTP components increase WebSocket methods:
1) SendWSMessage () : sends a WebSocket packet
2) GetWSMessageState () : gets the current state of WebSocket
2, all the HTTP listener component increases WebSocket events:
1) OnWSMessageHeader () : the WebSocket data in baotou notice
2) OnWSMessageBody () : the WebSocket packet body notice
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull