==========================================================================================
v3.1.2 £
==========================================================================================

> ޸ Server  OnClose() / OnError() ¼Ĵ
-----------------
1ǰ汾 TCP/UDP Server Уرһʱܻͬʱһ OnClose() ¼ɸ OnError() ¼
2. ڴԣӦóҪ OnClose() / OnError() Ĵ¼νͬ
3 v3.1.2 ʼ OnClose() / OnError() ¼ͬʱʱֻӦó֪ͨһ¼¼
4. ˣӦóڴ OnClose() / OnError() ¼ʱشͬ˳Ŀܺͱдͬĸ

	ʾһ
	--------------------------------------------------------------------------------------
	ISocketListener::EnHandleResult CServerDlg::OnClose(CONNID dwConnID)
	{
		// ǰ汾пܴڲ OnClose()/OnError()ҪѴٽвֵⷵ

		CCriSecLock locallock(m_csPkgInfo);	// <-- ٽ

		PVOID pInfo = nullptr;

		if(m_Server->GetConnectionExtra(dwConnID, &pInfo) && pInfo != nullptr)	// <-- ֵⷵ
		{
			m_Server->SetConnectionExtra(dwConnID, nullptr);
			delete pInfo;
		}
	}

	ʾ
	--------------------------------------------------------------------------------------
	ISocketListener::EnHandleResult CServerDlg::OnClose(CONNID dwConnID)
	{
		// v3.1.2 汾ֻյһ OnClose()/OnError() ¼ܰȫƳٽͼ

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

		delete pInfo;
	}

> £
-----------------
1 TCP Server Ĭϲ
	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 UDP Server Ĭϲ
	1) DEFAULT_FREE_SOCKETOBJ_POOL	: 150
	2) DEFAULT_FREE_SOCKETOBJ_HOLD	: 450
	3) DEFAULT_FREE_BUFFEROBJ_POOL	: 300
	4) DEFAULT_FREE_BUFFEROBJ_HOLD	: 900

> ˵
-----------------
1ʹ HP-Socket v3.1.1 ǰ汾Ӧó԰ȫ HP-Socket v3.1.2

==========================================================================================
v3.1.1 £
==========================================================================================

> ӵ C Ķ̬ӿ HPSocket4C.dll
-----------------
1Ӵļ HPSocket4C.h  HPSocket4C.cppڴ HPSocket4C.dll
2 C ԣ磺C/C#/Delphi ȣܷʹ HPSocket
3HPSocket4C.dll ʹ÷

	һ
	--------------------------------------------------------------------------------------
	(0) C/C++ 򣩰 HPSocket4C.h ͷļ
	(1)  ::Create_HP_XxxListener() 
	(2)  ::Create_HP_Xxx(pListener)  HPSocket 
	(3)  ::HP_Set_FN_Xxx_OnYyy(pListener, ...) üĻص
	(4) ص HPSocket 
	(5) ...... ......
	(6)  ::Destroy_HP_Xxx(pSocket)  HPSocket 
	(7)  ::Destroy_HP_XxxListener(pListener) ټ

	
	--------------------------------------------------------------------------------------
	(1) ӦóҪõĵװضԵİװ
	(2) ͨװװķʽʹ HPSocket

4HPSocket4C.dll ̬ӿⷢа汾

	(1) x86/HPSocket4C.dll		- (32λ/MBCS/Release)
	(2) x86/HPSocket4C_D.dll	- (32λ/MBCS/DeBug)
	(3) x86/HPSocket4C_U.dll	- (32λ/UNICODE/Release)
	(4) x86/HPSocket4C_UD.dll	- (32λ/UNICODE/DeBug)
	(5) x64/HPSocket4C.dll		- (64λ/MBCS/Release)
	(6) x64/HPSocket4C_D.dll	- (64λ/MBCS/DeBug)
	(7) x64/HPSocket4C_U.dll	- (64λ/UNICODE/Release)
	(8) x64/HPSocket4C_UD.dll	- (64λ/UNICODE/DeBug)

> ȫ Buffer Pool ƣ
-----------------
1Common/Src Ӵļ bufferpool.h  bufferpool.cppʵ Buffer Pool 
2ͨ Buffer Pool ڴʹЧʣٶ̬ڴͷŲڴն
3CTcpClient  CItemPool  TItemList ʵַͻ
4CUdpClient  CItemPool  TItemList ʵַͻ
5CTcpPullClient  CItemPool  TItemList ʵַͻ PULL 
6CTcpPullServer  CBufferPool  TBuffer ʵ PULL 

> £
-----------------
1IServer ӽӿڷ DisconnectLongConnections() ڶϿг
2IServer ɾӿڷ GetConnectionCriSec()
3IClient ӷ Get/SetFreeBufferPoolSize()Get/SetFreeBufferPoolHold()  Buffer Pool Сͷֵ
4IPullServer ɾ Get/SetFreePullBufferPool()Get/SetFreePullBufferHold()
5HPSocket.dll  HPSocket4C.dll ʹ /MT(d) ѡ±룬ʱ
6ʾ TestEcho-4Cչʾ HPSocket4C.dll ʹ÷

> ˵
-----------------
1ʹ HP-Socket v3.0.2 ǰ汾Ӧó԰ȫ HP-Socket v3.1.1
2ͨ HPSocket4C.dll ķʽʹ HP-Socketο TestEcho-4C ʾ

==========================================================================================
v3.0.2 £
==========================================================================================

>  HP-Socket Ϊ̬ӿ⣺
-----------------
1ӦóͨԴ̬ӿⷽʽʹ HP-Socket
2̬ӿʹ÷

	һ
	-----------------------------------------------------------------------
	(0) Ӧó SocketInterface.h  HPSocket.h ͷļ
	(1)  HP_Create_Xxx()  HPSocket 
	(2) ʹϺ HP_Destroy_Xxx()  HPSocket 

	
	-----------------------------------------------------------------------
	(0) Ӧó SocketInterface.h  HPSocket.h ͷļ
	(1)  CXxxWrapper װͨװָʹ HPSocket 

3̬ӿⷢа汾

	(1) x86/HPSocket.dll	- (32λ/MBCS/Release)
	(2) x86/HPSocket_D.dll	- (32λ/MBCS/DeBug)
	(3) x86/HPSocket_U.dll	- (32λ/UNICODE/Release)
	(4) x86/HPSocket_UD.dll	- (32λ/UNICODE/DeBug)
	(5) x64/HPSocket.dll	- (64λ/MBCS/Release)
	(6) x64/HPSocket_D.dll	- (64λ/MBCS/DeBug)
	(7) x64/HPSocket_U.dll	- (64λ/UNICODE/Release)
	(8) x64/HPSocket_UD.dll	- (64λ/UNICODE/DeBug)

> £
-----------------
1ӿԼӿڵƵ SocketInterface.h
2IServer ӽӿڷ GetConnectionCount()/GetConnectPeriod() ֱȡǰĳӵʱ
3IServer ӿڷ GetListenAddress()/GetClientAddress()  CString& Ϊ LPTSTR
4IClient ӿڷ GetLocalAddress()  CString& Ϊ LPTSTR
5SocketHelper.h ȫֺ CString& Ϊ LPTSTR
6ʾ TestEcho-Pull  TestEcho-PFM Ϊö̬ӿⷽʽʹ HP-Socket

> ˵
-----------------
1ʹ HP-Socket v3.0.1 Ӧó԰ȫ HP-Socket v3.0.2
2ĳЩӿڷĲ˵οԹӦ޸
3̬ͨӿⷽʽʹ HP-Socketο TestEcho-Pull  TestEcho-PFM ʾ

==========================================================================================
v3.0.1 £
==========================================================================================

>  UDP ͨ
-----------------
1 UDP ͨCUdpServer ΪCUdpClient Ϊͻ
2 CUdpServer  IOCP ͨģ
3ͻ CUdpClient  Event Select ͨģ
4UDP ͨĽӿԭ TCP ͨһ£ʵ
5UDP ͨͨ·Զ
6 UDP ͨʾ TestEcho-UDP

> عŻ
-----------------
1淶нӿڡԼļ
2عŻ˴
3дƣЧƽ⴦밲ȫ
4 Socket 󻺴бʱ䣬߷ʵİȫ

> ˵
-----------------
1ʹ HP-Socket v2.2.3 Ӧó԰ȫ HP-Socket v3.0.1
2˴ӿڡԼļʱҪӦ

==========================================================================================
v2.2.3 £
==========================================================================================

>  ID ͸ΪCONNID
-----------------
1SocketHelper.h ж CONNID ͣĬϣtypedef ULONG_PTR CONNID
2Ӧó԰ CONNID Ϊϣͣ磺ULONG / ULONGLONG ȣ
3Ϊ˱ֲάӦóκεطӦáCONNID ID

>  Socket ֧ΪÿӰ󶨸ݣ
-----------------
1IServerSocket  CIocpServer ӷ Get/SetConnectionExtra()
2ͨӦóΪÿӰ⸽ݲݻȡ

> £
-----------------
1ſ CIocpServer  IOCP ߳Ŀƣ64 Ϊ 500
2 Socket  Disconnect() һʶbForceָʾǷǿƶϿ
3 ID ɹ򣬱ֵΪ 0  ID

==========================================================================================
v2.2.2 £
==========================================================================================

> Żعܣ
-----------------
1IServerSocket  IClientSocket  Get/SetKeepAliveTimes() Ϊ Get/SetKeepAliveTime()
2CIocpServer  CClientSocket Ĭ KeepAliveTime ԸΪ 5000
3CIocpServer  CClientSocket Ĭ KeepAliveInterval ԸΪ 3000

==========================================================================================
v2.2.1 £
==========================================================================================

> PULL ģ֧֣
-----------------
1ISocketListener  PULL ģݽ֪ͨ OnReceive(dwConnID, int)
2 PULL Socket ӿ IPullSocketýӿڵ Fetch(dwConnID, pBuffer, iLength) ץȡͨ

> Server
-----------------
1 Socket ӿ ISocketServer Ϊ IServerSocket
2 PULL Server Socket  CPullServerSocketListener
3 PULL Server Socket ӿ IPullServerSocket
4 PULL Server Socket ʵ CIocpPullServer

> Client
-----------------
1ͻ Socket ӿ ISocketClient Ϊ IClientSocket
2ͻ Socket ʵ CSocketClient Ϊ CClientSocket
3 PULL Client Socket  CPullClientSocketListener
4 PULL Client Socket ӿ IPullClientSocket
5 PULL Client Socket ʵ CPullClientSocket

> £
-----------------
1 PULL Socket Գ TestEcho-Pull
2 SocketHelper.h (.cpp) ɰṹ

> ˵
-----------------
1ʹ HP-Socket v2.1.1 Ӧó԰ȫ v2.2.1
2 ISocketServerISocketClient  CSocketClient ޸ģˣӦóҪõƺͰͷļӦ޸

==========================================================================================
v2.1.1 £
==========================================================================================

> Server
-----------------
1IServerSocketListener ȡ OnPrepareSocket(connID, socket) ֪ͨ
2IServerSocketListener ޸ OnAccept((connID, soClient) ֪ͨӲsoClientʵԭ OnPrepareSocket(connID, socket) ֪ͨĹ
3IServerSocketListener  OnPrepareListen(soListen) ֪ͨü socket  SOCKET ѡ
4ISocketServer ӷ GetListenAddress(strAddress, usPort)ڻȡ Socket ĵַϢ
5ISocketServer ӷ GetClientAddress(connID, strAddress, usPort)ĳͻӵĵַϢ
6Ż Socket غڴ黺ع
7һЩԷʷķ
8޸BUG¿ܳ

> Client
-----------------
1ISocketServer ӷ GetLocalAddress(strAddress, usPort)ڻȡ Client Socket ĵַϢ
2ŻݷͷʽݷЧ

> £
-----------------
1Ż TestEcho  TestEcho-PFM Գ
3 SocketHelper.h (.cpp) ɰ
4Ϊ SocketHelper.h жнӿڡͷע

==========================================================================================
v2.0.1 £
==========================================================================================

> Server
-----------------
1IServerSocketListener  OnPrepareSocket(connID, socket) ֪ͨʹ socket ǰ SOCKET ѡ˿ͻ
2ISocketServer ӷ Disconnect(connID) Ͽͻ
3 IServerSocketListener  CServerSocketListenerṩĬϣյģ֪ͨ

> Client
-----------------
1IClientSocketListener  OnPrepareSocket(connID, socket) ֪ͨʹ socket ǰ SOCKET ѡ
2֧첽 ConnectISocketServer  Start() һ BOOL bAsyncConnect Ƿ첽 Connect
3 IClientSocketListener  CClientSocketListenerṩĬϣյģ֪ͨ
4޸BUG߸³ֶ


> £
-----------------
1֧ Windows x64 ƽ̨
2Ż TestEcho  TestEcho-PFM Գ
3TestEcho ͻ˳롰첽ӡʾ
4TestEcho ˳롰ӹˡ͡Ͽӡʾ