diff --git a/Build/Linux/CppUnitTest.workspace b/Build/Linux/CppUnitTest.workspace
new file mode 100644
index 000000000..52761e46c
--- /dev/null
+++ b/Build/Linux/CppUnitTest.workspace
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Linux/Linux_Bin/AutoTestClient b/Build/Linux/Linux_Bin/AutoTestClient
new file mode 100755
index 000000000..cc31d70c3
Binary files /dev/null and b/Build/Linux/Linux_Bin/AutoTestClient differ
diff --git a/Build/Linux/Linux_Bin/CommonTCPClient b/Build/Linux/Linux_Bin/CommonTCPClient
new file mode 100755
index 000000000..21a9197bf
Binary files /dev/null and b/Build/Linux/Linux_Bin/CommonTCPClient differ
diff --git a/Build/Linux/Linux_Bin/ConsoleCommand.xml b/Build/Linux/Linux_Bin/ConsoleCommand.xml
new file mode 100644
index 000000000..15f743198
--- /dev/null
+++ b/Build/Linux/Linux_Bin/ConsoleCommand.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/CppUnitTest.ini b/Build/Linux/Linux_Bin/CppUnitTest.ini
new file mode 100644
index 000000000..933e647cf
--- /dev/null
+++ b/Build/Linux/Linux_Bin/CppUnitTest.ini
@@ -0,0 +1,2 @@
+[Config]
+CppUnitTest=aaa
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/FileTest/1.txt b/Build/Linux/Linux_Bin/FileTest/1.txt
new file mode 100644
index 000000000..3c8b0d689
--- /dev/null
+++ b/Build/Linux/Linux_Bin/FileTest/1.txt
@@ -0,0 +1 @@
+01 00 00 10 08 00 00 00 46 45 45 45 45 59 45 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 be cd aa 8f 3c 01 00 00
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/FileTestCfg.xml b/Build/Linux/Linux_Bin/FileTestCfg.xml
new file mode 100644
index 000000000..bf038231c
--- /dev/null
+++ b/Build/Linux/Linux_Bin/FileTestCfg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/FileWatch.xml b/Build/Linux/Linux_Bin/FileWatch.xml
new file mode 100644
index 000000000..edf4e55f6
--- /dev/null
+++ b/Build/Linux/Linux_Bin/FileWatch.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/Icon.jpg b/Build/Linux/Linux_Bin/Icon.jpg
new file mode 100644
index 000000000..b214c3bba
Binary files /dev/null and b/Build/Linux/Linux_Bin/Icon.jpg differ
diff --git a/Build/Linux/Linux_Bin/LoginBufferFile/UserLogin.txt b/Build/Linux/Linux_Bin/LoginBufferFile/UserLogin.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/Build/Linux/Linux_Bin/LoginBufferFile/UserValid.txt b/Build/Linux/Linux_Bin/LoginBufferFile/UserValid.txt
new file mode 100644
index 000000000..e54c28003
--- /dev/null
+++ b/Build/Linux/Linux_Bin/LoginBufferFile/UserValid.txt
@@ -0,0 +1 @@
+freeeyes,123456;
horse,111111;
rabbit,222222;
freeeyes1,123456;
freeeyes2,123456;
freeeyes3,123456;
freeeyes4,123456;
freeeyes5,123456;
freeeyes6,123456;
freeeyes7,123456;
freeeyes8,123456;
freeeyes9,123456;
freeeyes10,123456;
freeeyes11,123456;
freeeyes12,123456;
freeeyes13,123456;
freeeyes14,123456;
freeeyes15,123456;
freeeyes16,123456;
freeeyes17,123456;
freeeyes18,123456;
freeeyes19,123456;
freeeyes20,123456;
freeeyes21,123456;
freeeyes22,123456;
freeeyes23,123456;
freeeyes24,123456;
freeeyes25,123456;
freeeyes26,123456;
freeeyes27,123456;
freeeyes28,123456;
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/LuaScript/LuaTest.lua b/Build/Linux/Linux_Bin/LuaScript/LuaTest.lua
new file mode 100644
index 000000000..559d4cfae
--- /dev/null
+++ b/Build/Linux/Linux_Bin/LuaScript/LuaTest.lua
@@ -0,0 +1,36 @@
+--һLua PassTcpű
+--ṩ¼ķװͽյ¼ķװ
+--֯ķݺ֤
+--ӿƣҪǿǵ̲߳ٲҪ߳
+--ݿ鲻Ҫڽű㲻ͷ
+--Ŀǰ֧100KݿС
+--add by freeeyes
+
+--Ҫݵ¼PassTCPãʵķݷ
+--ڲnThreadIDǵǰ߳IDszDataϢ(char* )nLenǻȣnSendIndexǵǰӵķʹ
+function LuaTest_SendData(szData, nLen, nThreadID, nSendIndex)
+ --
+ --szDataΪchar* ҪĻ顣
+ --nLenǵǰ
+ --nNextIndex-1˵ֵ,һεʼλ
+
+ --4ֽڰͷ
+ nPacketSize = 10
+ nStartIndex = 0
+ nNextIndex = 0
+ nNextIndex = Lua_Tcp_Buffer_In_Int32(szData, nPacketSize, nStartIndex, nLen)
+
+ --2ֽڵ
+ --nCommandID = 4096
+ --nNextIndex = Lua_Tcp_Buffer_In_Int16(szData, nCommandID, nNextIndex, nLen)
+
+ --ݿ
+ szBuff = '12345678'
+ nNextIndex = Lua_Tcp_Buffer_In_Block(szData, szBuff, 8, nNextIndex, nLen)
+
+ --뷵ݿijȣPassTCP֪ܳ
+ return nNextIndex
+end
+
+
+
diff --git a/Build/Linux/Linux_Bin/LuaScript/RoomLogic.lua b/Build/Linux/Linux_Bin/LuaScript/RoomLogic.lua
new file mode 100644
index 000000000..4f98d6531
--- /dev/null
+++ b/Build/Linux/Linux_Bin/LuaScript/RoomLogic.lua
@@ -0,0 +1,187 @@
+--ڷе
+--add by freeeyes
+
+ROOM_PLAYER_SIZE = 5 --Ҳμӵ
+ROOM_PLAYER_VISITOR_SIZE = 5 --۲ҵ
+
+ROOM_ERROR_NULL = 0 --ȷķֵ
+
+--ҽ뷿䣬nRoomIDIDnPlayerIDID
+function EnterRoom(nRoomID, nPlayerID)
+ --λʾ
+ if LuaFn_Room_API_GetPlayerCount(nRoomID) > ROOM_PLAYER_SIZE then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Room Player is full.")
+ return -1
+ end
+
+ --ڲιʾ
+ if LuaFn_Room_API_GetVisitorPlayerCount(nRoomID) > ROOM_PLAYER_SIZE then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Room Player is full.")
+ return -1
+ end
+
+ --뷿
+ nRet = LuaFn_Room_API_EnterRoom(nRoomID, nPlayerID, "freeeyes", 1000)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom success.")
+
+ --ⲿΪԴ룬ݸ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ return 0
+ end
+end
+
+--£nRoomIDIDnPlayerIDID, nLocationλ
+function SitRoom(nRoomID, nPlayerID, nLocation)
+ --
+ nRet = LuaFn_Room_API_PlayerSit(nRoomID, nPlayerID, nLocation)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom success.")
+
+ --жϷǷڶʱ
+ if LuaFn_RoomTimer_API_Check(nRoomID) == false then
+ --ûжʱչһʱ
+ nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ if nCount > 1 then
+ --жϵǰʱǷڷʱ5
+ if LuaFn_Room_API_CheckRoomUpdateTime(nRoomID, 5) == true then
+ --һĶʱ
+ nRet = LuaFn_RoomTimer_API_Add(2, nRoomID, nPlayerID, 1001)
+ if nRet <= 0 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer fail.[nRet="..nRet.."]")
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer success.[nsecond=5]")
+ end
+ else
+ --һĶʱ
+ nRet = LuaFn_RoomTimer_API_Add(5, nRoomID, nPlayerID, 1001)
+ if nRet <= 0 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer fail.[nRet="..nRet.."]")
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer success.[nsecond=2]")
+ end
+ end
+ end
+ end
+ end
+ return 0
+end
+
+--뿪nRoomIDIDnPlayerIDID
+function ExitRoom(nRoomID, nPlayerID)
+ --Դ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+
+ --һû
+ --nPlayerID1 = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ --nPlayerID2 = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [nPlayerID1="..nPlayerID1.."][nPlayerID2="..nPlayerID2.."]")
+
+ nRet = LuaFn_Room_API_Exit(nRoomID, nPlayerID)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom success.")
+
+ --Դ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ return 0
+ end
+end
+
+--߳ҹnRoomIDIDnPlayerIDIDnOperationIDcID
+function OutRoom(nRoomID, nPlayerID, nOperationID)
+
+end
+
+--ұ任䣬nSrcRoomIDԭʼIDnDstRoomIDĿ귿IDnPlayerIDID
+function ChangeRoom(nSrcRoomID, nDstRoomID, nPlayerID)
+
+end
+
+--¼ʱµánEventID¼IDnPlayerIDIDûҴ-1
+function Update(nRoomID, nPlayerID, nEventID, nData)
+ --ע
+ if nEventID == 3001 then
+ nRet = LuaFn_Room_API_SetPlayerBet(nRoomID, nPlayerID, nData)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update SetPlayerBet.[nRet="..nRet.."]")
+ return 0
+ else
+ --ƶһ
+ nNextPlayer = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ if nNextPlayer > 0 then
+ --㵱ǰִDzһ
+ if LuaFn_Room_GameInfo_API_GetRoundCount(nRoomID) >= 4 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update LuaFn_Room_GameInfo_API_GetRoundCount.[RoundCount=4]")
+ --ƾֽ
+ else
+
+ --һװ϶ʱ
+ LuaFn_PlayerTimer_API_Add(5, nRoomID, nNextPlayer, 2001)
+ end
+ else
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update GetRoomNextPlayerID.[nRet="..nRet.."]")
+ end
+ end
+ end
+
+ return 0
+end
+
+--䣬ȫ˳
+function ClearRoom()
+
+end
+
+--ʼ
+function InitRoom()
+
+end
+
+--PlayerϵĶʱ
+function PlayerTimer(nRoomID, nPlayerID, nEventID)
+ if nEventID == 2001 then
+ --ûע
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] PlayerTimer Begin")
+
+ --ﴦƶĹ
+ end
+end
+
+--Ķʱ
+function RoomTimer(nRoomID, nPlayerID, nEventID)
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] RoomTimer Begin")
+ if nEventID == 1001 then
+ --1001¼ôǵʱ¼(C++˷ƣ´äעСäעԼǷ״̬)
+ nRet = LuaFn_Room_API_DealCode(nRoomID, 1000, -1, -1)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] RoomTimer Begin DealCode.[nRet="..nRet.."]")
+ return 0
+ else
+ nCurrPlayerID = LuaFn_Room_API_GetRoomCurrPlayerID(nRoomID)
+
+ --ÿʼIDԴΪִμݣGetRoomNextPlayerIDңִμ+1
+ LuaFn_Room_API_SetBenginePlayerID(nCurrPlayerID)
+
+ --һƵӶʱ
+ LuaFn_PlayerTimer_API_Add(5, nRoomID, nPlayerID, 2001)
+ end
+ end
+end
+
diff --git a/Build/Linux/Linux_Bin/Module/PacketParse_Interface b/Build/Linux/Linux_Bin/Module/PacketParse_Interface
new file mode 100755
index 000000000..4d4a7ce4b
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/PacketParse_Interface differ
diff --git a/Build/Linux/Linux_Bin/Module/PacketParse_Interface_Http b/Build/Linux/Linux_Bin/Module/PacketParse_Interface_Http
new file mode 100755
index 000000000..6a7868a75
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/PacketParse_Interface_Http differ
diff --git a/Build/Linux/Linux_Bin/Module/PacketParse_Interface_Monitor b/Build/Linux/Linux_Bin/Module/PacketParse_Interface_Monitor
new file mode 100755
index 000000000..cd628d2fe
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/PacketParse_Interface_Monitor differ
diff --git a/Build/Linux/Linux_Bin/Module/PacketParse_Interface_WebSocket b/Build/Linux/Linux_Bin/Module/PacketParse_Interface_WebSocket
new file mode 100755
index 000000000..50bd829d1
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/PacketParse_Interface_WebSocket differ
diff --git a/Build/Linux/Linux_Bin/Module/libAutoTest b/Build/Linux/Linux_Bin/Module/libAutoTest
new file mode 100755
index 000000000..a2a914a80
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libAutoTest differ
diff --git a/Build/Linux/Linux_Bin/Module/libFtpTest b/Build/Linux/Linux_Bin/Module/libFtpTest
new file mode 100755
index 000000000..1e4d8f540
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libFtpTest differ
diff --git a/Build/Linux/Linux_Bin/Module/libHttp b/Build/Linux/Linux_Bin/Module/libHttp
new file mode 100755
index 000000000..c098e4716
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libHttp differ
diff --git a/Build/Linux/Linux_Bin/Module/libKafkaClient b/Build/Linux/Linux_Bin/Module/libKafkaClient
new file mode 100755
index 000000000..33279df2a
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libKafkaClient differ
diff --git a/Build/Linux/Linux_Bin/Module/libLGLogic b/Build/Linux/Linux_Bin/Module/libLGLogic
new file mode 100755
index 000000000..007449716
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libLGLogic differ
diff --git a/Build/Linux/Linux_Bin/Module/libLoginBuffer_Login b/Build/Linux/Linux_Bin/Module/libLoginBuffer_Login
new file mode 100755
index 000000000..c3f500f33
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libLoginBuffer_Login differ
diff --git a/Build/Linux/Linux_Bin/Module/libLoginBuffer_Watch b/Build/Linux/Linux_Bin/Module/libLoginBuffer_Watch
new file mode 100755
index 000000000..48f155422
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libLoginBuffer_Watch differ
diff --git a/Build/Linux/Linux_Bin/Module/libLsPlugIn b/Build/Linux/Linux_Bin/Module/libLsPlugIn
new file mode 100755
index 000000000..219e313c2
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libLsPlugIn differ
diff --git a/Build/Linux/Linux_Bin/Module/libLuaTest b/Build/Linux/Linux_Bin/Module/libLuaTest
new file mode 100755
index 000000000..76dbdfdc8
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libLuaTest differ
diff --git a/Build/Linux/Linux_Bin/Module/libMonitorServer b/Build/Linux/Linux_Bin/Module/libMonitorServer
new file mode 100755
index 000000000..c565a3f69
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libMonitorServer differ
diff --git a/Build/Linux/Linux_Bin/Module/libMutiProcess_Queue b/Build/Linux/Linux_Bin/Module/libMutiProcess_Queue
new file mode 100755
index 000000000..a3c1ec9e1
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libMutiProcess_Queue differ
diff --git a/Build/Linux/Linux_Bin/Module/libMutiProcess_Watch b/Build/Linux/Linux_Bin/Module/libMutiProcess_Watch
new file mode 100755
index 000000000..48f155422
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libMutiProcess_Watch differ
diff --git a/Build/Linux/Linux_Bin/Module/libPlugA b/Build/Linux/Linux_Bin/Module/libPlugA
new file mode 100755
index 000000000..326ed75de
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libPlugA differ
diff --git a/Build/Linux/Linux_Bin/Module/libPlugB b/Build/Linux/Linux_Bin/Module/libPlugB
new file mode 100755
index 000000000..6ee2b9f6f
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libPlugB differ
diff --git a/Build/Linux/Linux_Bin/Module/libProxy b/Build/Linux/Linux_Bin/Module/libProxy
new file mode 100755
index 000000000..2116e3c06
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libProxy differ
diff --git a/Build/Linux/Linux_Bin/Module/libProxyServer b/Build/Linux/Linux_Bin/Module/libProxyServer
new file mode 100755
index 000000000..d12a2d248
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libProxyServer differ
diff --git a/Build/Linux/Linux_Bin/Module/libRealTimeMonitor b/Build/Linux/Linux_Bin/Module/libRealTimeMonitor
new file mode 100755
index 000000000..48b0ab893
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libRealTimeMonitor differ
diff --git a/Build/Linux/Linux_Bin/Module/libTTyTest b/Build/Linux/Linux_Bin/Module/libTTyTest
new file mode 100755
index 000000000..a3e6aa2ed
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libTTyTest differ
diff --git a/Build/Linux/Linux_Bin/Module/libTcpTest b/Build/Linux/Linux_Bin/Module/libTcpTest
new file mode 100755
index 000000000..d34235fcb
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libTcpTest differ
diff --git a/Build/Linux/Linux_Bin/Module/libTestTCPPost b/Build/Linux/Linux_Bin/Module/libTestTCPPost
new file mode 100755
index 000000000..2d61d1fac
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libTestTCPPost differ
diff --git a/Build/Linux/Linux_Bin/Module/libTestUDPPost b/Build/Linux/Linux_Bin/Module/libTestUDPPost
new file mode 100755
index 000000000..a5342e259
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libTestUDPPost differ
diff --git a/Build/Linux/Linux_Bin/Module/libTimerTest b/Build/Linux/Linux_Bin/Module/libTimerTest
new file mode 100755
index 000000000..628965ee2
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libTimerTest differ
diff --git a/Build/Linux/Linux_Bin/Module/libUDPTest b/Build/Linux/Linux_Bin/Module/libUDPTest
new file mode 100755
index 000000000..b2ec5a89f
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libUDPTest differ
diff --git a/Build/Linux/Linux_Bin/Module/libWebSocket b/Build/Linux/Linux_Bin/Module/libWebSocket
new file mode 100755
index 000000000..6ca5f23c7
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libWebSocket differ
diff --git a/Build/Linux/Linux_Bin/Module/libXMLParse b/Build/Linux/Linux_Bin/Module/libXMLParse
new file mode 100755
index 000000000..29083f691
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libXMLParse differ
diff --git a/Build/Linux/Linux_Bin/Module/libZooClient b/Build/Linux/Linux_Bin/Module/libZooClient
new file mode 100755
index 000000000..980ab1b22
Binary files /dev/null and b/Build/Linux/Linux_Bin/Module/libZooClient differ
diff --git a/Build/Linux/Linux_Bin/PSSLoginClient b/Build/Linux/Linux_Bin/PSSLoginClient
new file mode 100755
index 000000000..348d5ee77
Binary files /dev/null and b/Build/Linux/Linux_Bin/PSSLoginClient differ
diff --git a/Build/Linux/Linux_Bin/PSSPlugClient b/Build/Linux/Linux_Bin/PSSPlugClient
new file mode 100755
index 000000000..4ab682c12
Binary files /dev/null and b/Build/Linux/Linux_Bin/PSSPlugClient differ
diff --git a/Build/Linux/Linux_Bin/PSSProxyClient b/Build/Linux/Linux_Bin/PSSProxyClient
new file mode 100755
index 000000000..a081fab9c
Binary files /dev/null and b/Build/Linux/Linux_Bin/PSSProxyClient differ
diff --git a/Build/Linux/Linux_Bin/PSS_ClientManager b/Build/Linux/Linux_Bin/PSS_ClientManager
new file mode 100755
index 000000000..0b05df072
Binary files /dev/null and b/Build/Linux/Linux_Bin/PSS_ClientManager differ
diff --git a/Build/Linux/Linux_Bin/PassTCP b/Build/Linux/Linux_Bin/PassTCP
new file mode 100755
index 000000000..8214c24d7
Binary files /dev/null and b/Build/Linux/Linux_Bin/PassTCP differ
diff --git a/Build/Linux/Linux_Bin/PssFtpClient b/Build/Linux/Linux_Bin/PssFtpClient
new file mode 100755
index 000000000..59517bcba
Binary files /dev/null and b/Build/Linux/Linux_Bin/PssFtpClient differ
diff --git a/Build/Linux/Linux_Bin/PurenessScopeServer b/Build/Linux/Linux_Bin/PurenessScopeServer
new file mode 100755
index 000000000..7a18d594a
Binary files /dev/null and b/Build/Linux/Linux_Bin/PurenessScopeServer differ
diff --git a/Build/Linux/Linux_Bin/Test b/Build/Linux/Linux_Bin/Test
new file mode 100755
index 000000000..c9d206188
Binary files /dev/null and b/Build/Linux/Linux_Bin/Test differ
diff --git a/Build/Linux/Linux_Bin/XML2CPP b/Build/Linux/Linux_Bin/XML2CPP
new file mode 100755
index 000000000..46a568865
Binary files /dev/null and b/Build/Linux/Linux_Bin/XML2CPP differ
diff --git a/Build/Linux/Linux_Bin/alert.xml b/Build/Linux/Linux_Bin/alert.xml
new file mode 100644
index 000000000..3fd8438d1
--- /dev/null
+++ b/Build/Linux/Linux_Bin/alert.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/forbiddenIP.xml b/Build/Linux/Linux_Bin/forbiddenIP.xml
new file mode 100644
index 000000000..cc74ee7d4
--- /dev/null
+++ b/Build/Linux/Linux_Bin/forbiddenIP.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/killp b/Build/Linux/Linux_Bin/killp
new file mode 100644
index 000000000..e8bbe3c11
--- /dev/null
+++ b/Build/Linux/Linux_Bin/killp
@@ -0,0 +1,9 @@
+#!/bin/sh
+. ${HOME}/.bash_profile
+
+ps -ef|grep $LOGNAME | grep -w $1 |grep -v pts| grep -v killp|awk '{print $2}'|while read tt
+do
+echo "killed $tt"
+kill $tt
+done
+#ps -ef|grep $LOGNAME|grep $1|grep -v grep|awk '{print $2}'|xargs kill -9
diff --git a/Build/Linux/Linux_Bin/logger.xml b/Build/Linux/Linux_Bin/logger.xml
new file mode 100644
index 000000000..24c5a1bf7
--- /dev/null
+++ b/Build/Linux/Linux_Bin/logger.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/main.xml b/Build/Linux/Linux_Bin/main.xml
new file mode 100644
index 000000000..ac5d87a4e
--- /dev/null
+++ b/Build/Linux/Linux_Bin/main.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Linux/Linux_Bin/reports/cppunit/report.xml b/Build/Linux/Linux_Bin/reports/cppunit/report.xml
new file mode 100644
index 000000000..e69de29bb
diff --git a/Build/Linux/Linux_Bin/runpss.sh b/Build/Linux/Linux_Bin/runpss.sh
new file mode 100644
index 000000000..3a507577f
--- /dev/null
+++ b/Build/Linux/Linux_Bin/runpss.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+. ${HOME}/.bash_profile
+
+./killp PurenessScopeServer
+nohup ./PurenessScopeServer > nohup.out 2>&1 &
diff --git a/Build/Linux/Linux_Bin/small.ico b/Build/Linux/Linux_Bin/small.ico
new file mode 100644
index 000000000..b3ec03bd6
Binary files /dev/null and b/Build/Linux/Linux_Bin/small.ico differ
diff --git a/Build/Linux/Linux_Bin/valgrind-deadlock.run b/Build/Linux/Linux_Bin/valgrind-deadlock.run
new file mode 100644
index 000000000..863516505
--- /dev/null
+++ b/Build/Linux/Linux_Bin/valgrind-deadlock.run
@@ -0,0 +1 @@
+valgrind --tool=helgrind --log-file=deadlock.log --error-limit=no ./PurenessScopeServer
diff --git a/Build/Linux/Linux_Bin/valgrind-efc.run b/Build/Linux/Linux_Bin/valgrind-efc.run
new file mode 100644
index 000000000..481213f0b
--- /dev/null
+++ b/Build/Linux/Linux_Bin/valgrind-efc.run
@@ -0,0 +1 @@
+valgrind --tool=callgrind --separate-threads=yes --log-file=RunLog.log ./PurenessScopeServer
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/valgrind-mem.run b/Build/Linux/Linux_Bin/valgrind-mem.run
new file mode 100644
index 000000000..ef9b3e78e
--- /dev/null
+++ b/Build/Linux/Linux_Bin/valgrind-mem.run
@@ -0,0 +1 @@
+valgrind --tool=memcheck --leak-check=full --show-reachable=yes --log-file=EfcLog.log ./PurenessScopeServer
\ No newline at end of file
diff --git a/Build/Linux/Linux_Bin/valgrind.run b/Build/Linux/Linux_Bin/valgrind.run
new file mode 100644
index 000000000..de6bea4ea
--- /dev/null
+++ b/Build/Linux/Linux_Bin/valgrind.run
@@ -0,0 +1 @@
+valgrind --tool=memcheck --leak-check=full --show-reachable=yes --log-file=RunLog.log ./PurenessScopeServer
\ No newline at end of file
diff --git a/Build/Linux/Makefile b/Build/Linux/Makefile
new file mode 100644
index 000000000..dd700e1dc
--- /dev/null
+++ b/Build/Linux/Makefile
@@ -0,0 +1,8 @@
+.PHONY: clean All
+
+All:
+ @echo "----------正在构建项目:[ PssFtpClient - Release ]----------"
+ @cd "/data/develop/Lib/Network/PSS-master/PssSampleClient/PSSFtpClient" && "$(MAKE)" -f "PssFtpClient.mk"
+clean:
+ @echo "----------正在清理项目:[ PssFtpClient - Release ]----------"
+ @cd "/data/develop/Lib/Network/PSS-master/PssSampleClient/PSSFtpClient" && "$(MAKE)" -f "PssFtpClient.mk" clean
diff --git a/Build/Linux/PSS_2017.workspace b/Build/Linux/PSS_2017.workspace
new file mode 100644
index 000000000..ca862c0b4
--- /dev/null
+++ b/Build/Linux/PSS_2017.workspace
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Linux/PluginMaker.workspace b/Build/Linux/PluginMaker.workspace
new file mode 100644
index 000000000..ac68595bc
--- /dev/null
+++ b/Build/Linux/PluginMaker.workspace
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Linux/PssSampleClient.workspace b/Build/Linux/PssSampleClient.workspace
new file mode 100644
index 000000000..58581a3d6
--- /dev/null
+++ b/Build/Linux/PssSampleClient.workspace
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Linux/TestNetworkTool.workspace b/Build/Linux/TestNetworkTool.workspace
new file mode 100644
index 000000000..066c64a6b
--- /dev/null
+++ b/Build/Linux/TestNetworkTool.workspace
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Linux/example-Module.workspace b/Build/Linux/example-Module.workspace
new file mode 100644
index 000000000..b7e8d4002
--- /dev/null
+++ b/Build/Linux/example-Module.workspace
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Linux/make.sh b/Build/Linux/make.sh
new file mode 100755
index 000000000..6423f20d1
--- /dev/null
+++ b/Build/Linux/make.sh
@@ -0,0 +1,132 @@
+cd ../../CppUnitTest/
+make -f Makefile
+
+cd ../PluginMaker/XML2CPP/
+make -f Makefile
+
+
+
+cd ../../TestNetworkTool/
+make -f Makefile_PSS_ClientManager
+make -f Makefile_PassTCP
+
+
+
+cd ../purenessscopeserver/FrameCore/
+make -f Makefile
+
+cd ../PacketParse_Interface_Monitor/
+make -f Makefile
+
+cd ../PacketParse_Interface_WebSocket/
+make -f Makefile
+
+cd ../PacketParse_Interface/
+make -f Makefile
+
+cd ../PacketParse_Interface_Http/
+make -f Makefile
+
+
+
+
+cd ../example-Module/LGLogic/
+make -f Makefile
+
+cd ../TTyTest/
+make -f Makefile
+
+cd ../WebSocket/
+make -f Makefile
+
+cd ../PlugAtoB/
+make -f Makefile_PlugB
+
+cd ../PlugAtoB/
+make -f Makefile_PlugA
+
+cd ../TestTCPPost/
+make -f Makefile
+
+cd ../Http/
+make -f Makefile
+
+cd ../MutiProcess/
+make -f Makefile_MutiProcess_Watch
+
+cd ../MutiProcess/
+make -f Makefile_MutiProcess_Queue
+
+cd ../LuaTest/
+make -f Makefile
+
+cd ../TimerTest/
+make -f Makefile
+
+cd ../TestUDPPost/
+make -f Makefile
+
+cd ../ZooClient/
+make -f Makefile
+
+cd ../LsPlugIn/
+make -f Makefile
+
+cd ../KafkaClient/
+make -f Makefile
+
+cd ../TcpTest/
+make -f Makefile
+
+cd ../MonitorServer/
+make -f Makefile
+
+cd ../RealTimeMonitor/
+make -f Makefile
+
+cd ../Proxy/
+make -f Makefile_ProxyServer
+
+cd ../Proxy/
+make -f Makefile
+
+cd ../FtpTest/
+make -f Makefile
+
+cd ../XMLParse/
+make -f Makefile
+
+cd ../AutoTest/
+make -f Makefile
+
+cd ../UDPTest/
+make -f Makefile
+
+cd ../LoginBuffer/
+make -f Makefile_Watch
+
+cd ../LoginBuffer/
+make -f Makefile_Login
+
+
+cd ../../../PssSampleClient/CommonTCPClient/
+make -f Makefile
+
+cd ../PSSProxyClient/
+make -f Makefile
+
+cd ../PSSLoginClient/
+make -f Makefile
+
+cd ../PSSPlugClient/
+make -f Makefile
+
+cd ../AutoTestClient/
+make -f Makefile
+
+cd ../PSSFtpClient/
+make -f Makefile
+
+cd ../../Build/Linux/
+
+
diff --git a/Build/Linux/makefile.mpc b/Build/Linux/makefile.mpc
new file mode 100644
index 000000000..9f851f216
--- /dev/null
+++ b/Build/Linux/makefile.mpc
@@ -0,0 +1,51 @@
+project(PurenessScopeServer):aceexe{
+ exename = PurenessScopeServer
+
+ Source_Files{
+ ../../purenessscopeserver/Common/*.cpp
+ ../../purenessscopeserver/FrameCore/Common/*.cpp
+ ../../purenessscopeserver/FrameCore/Console/*.cpp
+ ../../purenessscopeserver/FrameCore/LogSystem/*.cpp
+ ../../purenessscopeserver/FrameCore/Message/*.cpp
+ ../../purenessscopeserver/FrameCore/PacketParse/*.cpp
+ ../../purenessscopeserver/FrameCore/Reactor/*.cpp
+ ../../purenessscopeserver/FrameCore/UDP/*.cpp
+ ../../purenessscopeserver/FrameCore/TinyXML/*.cpp
+ ../../purenessscopeserver/FrameCore/Mail/*.cpp
+ ../../purenessscopeserver/FrameCore/FileTest/*.cpp
+ ../../purenessscopeserver/FrameCore/*.cpp
+ }
+ includes += ../../purenessscopeserver/Common \
+ ../../purenessscopeserver/FrameCore/Common \
+ ../../purenessscopeserver/FrameCore/Console \
+ ../../purenessscopeserver/FrameCore/LogSystem \
+ ../../purenessscopeserver/FrameCore/Message \
+ ../../purenessscopeserver/FrameCore/PacketParse \
+ ../../purenessscopeserver/FrameCore/Reactor \
+ ../../purenessscopeserver/FrameCore/UDP \
+ ../../purenessscopeserver/FrameCore/TinyXML \
+ ../../purenessscopeserver/FrameCore/Mail \
+ ../../purenessscopeserver/FrameCore/FileTest
+
+ includes += /usr/local/include/
+ includes += /usr/include/
+ libpaths += /usr/lib64/
+ libpaths += /usr/lib/x86_64-linux-gnu/
+
+ specific(make) {
+ compile_flags += -fcheck-new
+ }
+
+ verbatim(gnuace, local) {
+ ifneq (, $(shell which curl))
+ CPPFLAGS += -D__THREE_LIBRARY_CURL__
+ LDLIBS += -lcurl
+ endif
+ }
+
+ specific(gnuace) {
+ compile_flags += -Wno-deprecated -std=c++11
+ }
+
+
+}
diff --git a/Build/Linux/makegcov.mpc b/Build/Linux/makegcov.mpc
new file mode 100644
index 000000000..3de42886b
--- /dev/null
+++ b/Build/Linux/makegcov.mpc
@@ -0,0 +1,57 @@
+project(PurenessScopeServer):aceexe{
+ exename = PurenessScopeServer
+
+ Source_Files{
+ ../../purenessscopeserver/Common/*.cpp
+ ../../purenessscopeserver/FrameCore/Common/*.cpp
+ ../../purenessscopeserver/FrameCore/Console/*.cpp
+ ../../purenessscopeserver/FrameCore/LogSystem/*.cpp
+ ../../purenessscopeserver/FrameCore/Message/*.cpp
+ ../../purenessscopeserver/FrameCore/PacketParse/*.cpp
+ ../../purenessscopeserver/FrameCore/Encrypt/*.cpp
+ ../../purenessscopeserver/FrameCore/Reactor/*.cpp
+ ../../purenessscopeserver/FrameCore/UDP/*.cpp
+ ../../purenessscopeserver/FrameCore/TinyXML/*.cpp
+ ../../purenessscopeserver/FrameCore/Mail/*.cpp
+ ../../purenessscopeserver/FrameCore/FileTest/*.cpp
+ ../../purenessscopeserver/FrameCore/CppUnit/*.cpp
+ ../../purenessscopeserver/FrameCore/*.cpp
+ }
+ includes += ../../include
+ includes += ../../purenessscopeserver/Common \
+ ../../purenessscopeserver/FrameCore/Common \
+ ../../purenessscopeserver/FrameCore/Console \
+ ../../purenessscopeserver/FrameCore/LogSystem \
+ ../../purenessscopeserver/FrameCore/Message \
+ ../../purenessscopeserver/FrameCore/PacketParse \
+ ../../purenessscopeserver/FrameCore/Encrypt \
+ ../../purenessscopeserver/FrameCore/Reactor \
+ ../../purenessscopeserver/FrameCore/UDP \
+ ../../purenessscopeserver/FrameCore/TinyXML \
+ ../../purenessscopeserver/FrameCore/Mail \
+ ../../purenessscopeserver/FrameCore/FileTest \
+ ../../purenessscopeserver/FrameCore/CppUnit
+
+ libpaths += ../../lib
+ libs += cppunit
+
+ includes += /usr/local/include/
+ includes += /usr/include/
+ libpaths += /usr/lib64/
+ libpaths += /usr/lib/x86_64-linux-gnu/
+
+ macros += _CPPUNIT_TEST
+
+ verbatim(gnuace, local) {
+ ifneq (, $(shell which curl))
+ CPPFLAGS += -D__THREE_LIBRARY_CURL__
+ LDLIBS += -lcurl
+ endif
+ }
+
+ specific(gnuace) {
+ compile_flags += -fprofile-arcs -ftest-coverage -std=c++11
+ }
+
+
+}
\ No newline at end of file
diff --git a/Build/Linux/pss.mwc b/Build/Linux/pss.mwc
new file mode 100644
index 000000000..331c75744
--- /dev/null
+++ b/Build/Linux/pss.mwc
@@ -0,0 +1,4 @@
+workspace(PSS) {
+ makefile.mpc
+ cmdline += -include $PWD
+}
\ No newline at end of file
diff --git a/Build/Linux/psssonar.mwc b/Build/Linux/psssonar.mwc
new file mode 100644
index 000000000..c5b9ce131
--- /dev/null
+++ b/Build/Linux/psssonar.mwc
@@ -0,0 +1,4 @@
+workspace(PSS) {
+ makegcov.mpc
+ cmdline += -include $PWD
+}
\ No newline at end of file
diff --git a/Build/Linux/runlinuxmpc.sh b/Build/Linux/runlinuxmpc.sh
new file mode 100644
index 000000000..093bf5e27
--- /dev/null
+++ b/Build/Linux/runlinuxmpc.sh
@@ -0,0 +1 @@
+mwc.pl -type gnuace pss.mwc
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/CppUnitTest.workspace b/Build/Prj_CodeBlocks/CppUnitTest.workspace
new file mode 100644
index 000000000..d47396908
--- /dev/null
+++ b/Build/Prj_CodeBlocks/CppUnitTest.workspace
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/CppUnitTest.workspace.layout b/Build/Prj_CodeBlocks/CppUnitTest.workspace.layout
new file mode 100644
index 000000000..a17209048
--- /dev/null
+++ b/Build/Prj_CodeBlocks/CppUnitTest.workspace.layout
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/AutoTestClient b/Build/Prj_CodeBlocks/Linux_Bin/AutoTestClient
new file mode 100755
index 000000000..ce439f9b2
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/AutoTestClient differ
diff --git a/PssSampleClient/PSS_ClientManager/PSS_ClientManager/Windows_Bin/CheckServer.xml b/Build/Prj_CodeBlocks/Linux_Bin/CheckServer.xml
similarity index 100%
rename from PssSampleClient/PSS_ClientManager/PSS_ClientManager/Windows_Bin/CheckServer.xml
rename to Build/Prj_CodeBlocks/Linux_Bin/CheckServer.xml
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/CommonTCPClient b/Build/Prj_CodeBlocks/Linux_Bin/CommonTCPClient
new file mode 100755
index 000000000..28bef2f21
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/CommonTCPClient differ
diff --git a/PssSampleClient/PSS_ClientManager/PSS_ClientManager/Windows_Bin/Config.xml b/Build/Prj_CodeBlocks/Linux_Bin/Config.xml
similarity index 100%
rename from PssSampleClient/PSS_ClientManager/PSS_ClientManager/Windows_Bin/Config.xml
rename to Build/Prj_CodeBlocks/Linux_Bin/Config.xml
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/ConsoleCommand.xml b/Build/Prj_CodeBlocks/Linux_Bin/ConsoleCommand.xml
new file mode 100644
index 000000000..15f743198
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/ConsoleCommand.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/CppUnitTest.ini b/Build/Prj_CodeBlocks/Linux_Bin/CppUnitTest.ini
new file mode 100644
index 000000000..933e647cf
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/CppUnitTest.ini
@@ -0,0 +1,2 @@
+[Config]
+CppUnitTest=aaa
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/FileTest/1.txt b/Build/Prj_CodeBlocks/Linux_Bin/FileTest/1.txt
new file mode 100644
index 000000000..3c8b0d689
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/FileTest/1.txt
@@ -0,0 +1 @@
+01 00 00 10 08 00 00 00 46 45 45 45 45 59 45 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 be cd aa 8f 3c 01 00 00
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/FileTestCfg.xml b/Build/Prj_CodeBlocks/Linux_Bin/FileTestCfg.xml
new file mode 100644
index 000000000..bf038231c
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/FileTestCfg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/FileWatch.xml b/Build/Prj_CodeBlocks/Linux_Bin/FileWatch.xml
new file mode 100644
index 000000000..edf4e55f6
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/FileWatch.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/LoginBufferFile/UserLogin.txt b/Build/Prj_CodeBlocks/Linux_Bin/LoginBufferFile/UserLogin.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/LoginBufferFile/UserValid.txt b/Build/Prj_CodeBlocks/Linux_Bin/LoginBufferFile/UserValid.txt
new file mode 100644
index 000000000..e54c28003
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/LoginBufferFile/UserValid.txt
@@ -0,0 +1 @@
+freeeyes,123456;
horse,111111;
rabbit,222222;
freeeyes1,123456;
freeeyes2,123456;
freeeyes3,123456;
freeeyes4,123456;
freeeyes5,123456;
freeeyes6,123456;
freeeyes7,123456;
freeeyes8,123456;
freeeyes9,123456;
freeeyes10,123456;
freeeyes11,123456;
freeeyes12,123456;
freeeyes13,123456;
freeeyes14,123456;
freeeyes15,123456;
freeeyes16,123456;
freeeyes17,123456;
freeeyes18,123456;
freeeyes19,123456;
freeeyes20,123456;
freeeyes21,123456;
freeeyes22,123456;
freeeyes23,123456;
freeeyes24,123456;
freeeyes25,123456;
freeeyes26,123456;
freeeyes27,123456;
freeeyes28,123456;
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/LuaScript/LuaTest.lua b/Build/Prj_CodeBlocks/Linux_Bin/LuaScript/LuaTest.lua
new file mode 100644
index 000000000..559d4cfae
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/LuaScript/LuaTest.lua
@@ -0,0 +1,36 @@
+--һLua PassTcpű
+--ṩ¼ķװͽյ¼ķװ
+--֯ķݺ֤
+--ӿƣҪǿǵ̲߳ٲҪ߳
+--ݿ鲻Ҫڽű㲻ͷ
+--Ŀǰ֧100KݿС
+--add by freeeyes
+
+--Ҫݵ¼PassTCPãʵķݷ
+--ڲnThreadIDǵǰ߳IDszDataϢ(char* )nLenǻȣnSendIndexǵǰӵķʹ
+function LuaTest_SendData(szData, nLen, nThreadID, nSendIndex)
+ --
+ --szDataΪchar* ҪĻ顣
+ --nLenǵǰ
+ --nNextIndex-1˵ֵ,һεʼλ
+
+ --4ֽڰͷ
+ nPacketSize = 10
+ nStartIndex = 0
+ nNextIndex = 0
+ nNextIndex = Lua_Tcp_Buffer_In_Int32(szData, nPacketSize, nStartIndex, nLen)
+
+ --2ֽڵ
+ --nCommandID = 4096
+ --nNextIndex = Lua_Tcp_Buffer_In_Int16(szData, nCommandID, nNextIndex, nLen)
+
+ --ݿ
+ szBuff = '12345678'
+ nNextIndex = Lua_Tcp_Buffer_In_Block(szData, szBuff, 8, nNextIndex, nLen)
+
+ --뷵ݿijȣPassTCP֪ܳ
+ return nNextIndex
+end
+
+
+
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/LuaScript/RoomLogic.lua b/Build/Prj_CodeBlocks/Linux_Bin/LuaScript/RoomLogic.lua
new file mode 100644
index 000000000..4f98d6531
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/LuaScript/RoomLogic.lua
@@ -0,0 +1,187 @@
+--ڷе
+--add by freeeyes
+
+ROOM_PLAYER_SIZE = 5 --Ҳμӵ
+ROOM_PLAYER_VISITOR_SIZE = 5 --۲ҵ
+
+ROOM_ERROR_NULL = 0 --ȷķֵ
+
+--ҽ뷿䣬nRoomIDIDnPlayerIDID
+function EnterRoom(nRoomID, nPlayerID)
+ --λʾ
+ if LuaFn_Room_API_GetPlayerCount(nRoomID) > ROOM_PLAYER_SIZE then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Room Player is full.")
+ return -1
+ end
+
+ --ڲιʾ
+ if LuaFn_Room_API_GetVisitorPlayerCount(nRoomID) > ROOM_PLAYER_SIZE then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Room Player is full.")
+ return -1
+ end
+
+ --뷿
+ nRet = LuaFn_Room_API_EnterRoom(nRoomID, nPlayerID, "freeeyes", 1000)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom success.")
+
+ --ⲿΪԴ룬ݸ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ return 0
+ end
+end
+
+--£nRoomIDIDnPlayerIDID, nLocationλ
+function SitRoom(nRoomID, nPlayerID, nLocation)
+ --
+ nRet = LuaFn_Room_API_PlayerSit(nRoomID, nPlayerID, nLocation)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom success.")
+
+ --жϷǷڶʱ
+ if LuaFn_RoomTimer_API_Check(nRoomID) == false then
+ --ûжʱչһʱ
+ nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ if nCount > 1 then
+ --жϵǰʱǷڷʱ5
+ if LuaFn_Room_API_CheckRoomUpdateTime(nRoomID, 5) == true then
+ --һĶʱ
+ nRet = LuaFn_RoomTimer_API_Add(2, nRoomID, nPlayerID, 1001)
+ if nRet <= 0 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer fail.[nRet="..nRet.."]")
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer success.[nsecond=5]")
+ end
+ else
+ --һĶʱ
+ nRet = LuaFn_RoomTimer_API_Add(5, nRoomID, nPlayerID, 1001)
+ if nRet <= 0 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer fail.[nRet="..nRet.."]")
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer success.[nsecond=2]")
+ end
+ end
+ end
+ end
+ end
+ return 0
+end
+
+--뿪nRoomIDIDnPlayerIDID
+function ExitRoom(nRoomID, nPlayerID)
+ --Դ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+
+ --һû
+ --nPlayerID1 = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ --nPlayerID2 = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [nPlayerID1="..nPlayerID1.."][nPlayerID2="..nPlayerID2.."]")
+
+ nRet = LuaFn_Room_API_Exit(nRoomID, nPlayerID)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom success.")
+
+ --Դ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ return 0
+ end
+end
+
+--߳ҹnRoomIDIDnPlayerIDIDnOperationIDcID
+function OutRoom(nRoomID, nPlayerID, nOperationID)
+
+end
+
+--ұ任䣬nSrcRoomIDԭʼIDnDstRoomIDĿ귿IDnPlayerIDID
+function ChangeRoom(nSrcRoomID, nDstRoomID, nPlayerID)
+
+end
+
+--¼ʱµánEventID¼IDnPlayerIDIDûҴ-1
+function Update(nRoomID, nPlayerID, nEventID, nData)
+ --ע
+ if nEventID == 3001 then
+ nRet = LuaFn_Room_API_SetPlayerBet(nRoomID, nPlayerID, nData)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update SetPlayerBet.[nRet="..nRet.."]")
+ return 0
+ else
+ --ƶһ
+ nNextPlayer = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ if nNextPlayer > 0 then
+ --㵱ǰִDzһ
+ if LuaFn_Room_GameInfo_API_GetRoundCount(nRoomID) >= 4 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update LuaFn_Room_GameInfo_API_GetRoundCount.[RoundCount=4]")
+ --ƾֽ
+ else
+
+ --һװ϶ʱ
+ LuaFn_PlayerTimer_API_Add(5, nRoomID, nNextPlayer, 2001)
+ end
+ else
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update GetRoomNextPlayerID.[nRet="..nRet.."]")
+ end
+ end
+ end
+
+ return 0
+end
+
+--䣬ȫ˳
+function ClearRoom()
+
+end
+
+--ʼ
+function InitRoom()
+
+end
+
+--PlayerϵĶʱ
+function PlayerTimer(nRoomID, nPlayerID, nEventID)
+ if nEventID == 2001 then
+ --ûע
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] PlayerTimer Begin")
+
+ --ﴦƶĹ
+ end
+end
+
+--Ķʱ
+function RoomTimer(nRoomID, nPlayerID, nEventID)
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] RoomTimer Begin")
+ if nEventID == 1001 then
+ --1001¼ôǵʱ¼(C++˷ƣ´äעСäעԼǷ״̬)
+ nRet = LuaFn_Room_API_DealCode(nRoomID, 1000, -1, -1)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] RoomTimer Begin DealCode.[nRet="..nRet.."]")
+ return 0
+ else
+ nCurrPlayerID = LuaFn_Room_API_GetRoomCurrPlayerID(nRoomID)
+
+ --ÿʼIDԴΪִμݣGetRoomNextPlayerIDңִμ+1
+ LuaFn_Room_API_SetBenginePlayerID(nCurrPlayerID)
+
+ --һƵӶʱ
+ LuaFn_PlayerTimer_API_Add(5, nRoomID, nPlayerID, 2001)
+ end
+ end
+end
+
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/ProxyServer b/Build/Prj_CodeBlocks/Linux_Bin/Module/ProxyServer
new file mode 100755
index 000000000..9a4b1a9dd
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/ProxyServer differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/Watch b/Build/Prj_CodeBlocks/Linux_Bin/Module/Watch
new file mode 100755
index 000000000..1f1d24a0b
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/Watch differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libAutoTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libAutoTest.so
new file mode 100755
index 000000000..7269eae97
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libAutoTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libFtpTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libFtpTest.so
new file mode 100755
index 000000000..ab1801f70
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libFtpTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libHttpTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libHttpTest.so
new file mode 100755
index 000000000..43f0a118d
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libHttpTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libKafkaClient.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libKafkaClient.so
new file mode 100755
index 000000000..03ed6d510
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libKafkaClient.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libLGLogic.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLGLogic.so
new file mode 100755
index 000000000..a8df86fda
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLGLogic.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libLSLogic.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLSLogic.so
new file mode 100755
index 000000000..71b43c5d8
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLSLogic.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libLinuxQueue.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLinuxQueue.so
new file mode 100755
index 000000000..8df5ceab1
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLinuxQueue.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libLogin.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLogin.so
new file mode 100755
index 000000000..71b1c0c95
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLogin.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libLuaTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLuaTest.so
new file mode 100755
index 000000000..022aed0a0
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libLuaTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libMonitorServer.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libMonitorServer.so
new file mode 100755
index 000000000..652d565e9
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libMonitorServer.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libPlugA.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libPlugA.so
new file mode 100755
index 000000000..29163741d
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libPlugA.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libPlugB.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libPlugB.so
new file mode 100755
index 000000000..2f1cf8d04
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libPlugB.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libProxyTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libProxyTest.so
new file mode 100755
index 000000000..90d530c42
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libProxyTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libRealTimeMonitor.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libRealTimeMonitor.so
new file mode 100755
index 000000000..40c5ba72c
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libRealTimeMonitor.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libTTyTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libTTyTest.so
new file mode 100755
index 000000000..5f2c2d950
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libTTyTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libTcpTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libTcpTest.so
new file mode 100755
index 000000000..1ceb3af54
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libTcpTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libTcpTestPost.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libTcpTestPost.so
new file mode 100755
index 000000000..36fb2a438
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libTcpTestPost.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libTimerTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libTimerTest.so
new file mode 100755
index 000000000..773d2a446
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libTimerTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libUDPTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libUDPTest.so
new file mode 100755
index 000000000..b329f76d5
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libUDPTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libUDPTestPost.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libUDPTestPost.so
new file mode 100755
index 000000000..3ef3453ea
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libUDPTestPost.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libWebSocketTest.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libWebSocketTest.so
new file mode 100755
index 000000000..13d28e79d
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libWebSocketTest.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libXMLParse.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libXMLParse.so
new file mode 100755
index 000000000..447582c58
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libXMLParse.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Module/libZooClient.so b/Build/Prj_CodeBlocks/Linux_Bin/Module/libZooClient.so
new file mode 100755
index 000000000..9c818e186
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Module/libZooClient.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/PSSClientManager b/Build/Prj_CodeBlocks/Linux_Bin/PSSClientManager
new file mode 100755
index 000000000..7229a7035
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/PSSClientManager differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/PSSLoginClient b/Build/Prj_CodeBlocks/Linux_Bin/PSSLoginClient
new file mode 100755
index 000000000..fa02fd234
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/PSSLoginClient differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/PSSPlugClient b/Build/Prj_CodeBlocks/Linux_Bin/PSSPlugClient
new file mode 100755
index 000000000..b63c3e113
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/PSSPlugClient differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/PSSProxyClient b/Build/Prj_CodeBlocks/Linux_Bin/PSSProxyClient
new file mode 100755
index 000000000..9f867c051
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/PSSProxyClient differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/PassTCP b/Build/Prj_CodeBlocks/Linux_Bin/PassTCP
new file mode 100755
index 000000000..11f661182
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/PassTCP differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/PssFtpClient b/Build/Prj_CodeBlocks/Linux_Bin/PssFtpClient
new file mode 100755
index 000000000..5a24295bf
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/PssFtpClient differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/PurenessScopeServer_R b/Build/Prj_CodeBlocks/Linux_Bin/PurenessScopeServer_R
new file mode 100755
index 000000000..5283a7e0c
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/PurenessScopeServer_R differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/Test b/Build/Prj_CodeBlocks/Linux_Bin/Test
new file mode 100755
index 000000000..a876502a8
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/Test differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/XML2CPP b/Build/Prj_CodeBlocks/Linux_Bin/XML2CPP
new file mode 100755
index 000000000..6c0f00fc7
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/XML2CPP differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/alert.xml b/Build/Prj_CodeBlocks/Linux_Bin/alert.xml
new file mode 100644
index 000000000..3fd8438d1
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/alert.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/forbiddenIP.xml b/Build/Prj_CodeBlocks/Linux_Bin/forbiddenIP.xml
new file mode 100644
index 000000000..cc74ee7d4
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/forbiddenIP.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/killp b/Build/Prj_CodeBlocks/Linux_Bin/killp
new file mode 100644
index 000000000..e8bbe3c11
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/killp
@@ -0,0 +1,9 @@
+#!/bin/sh
+. ${HOME}/.bash_profile
+
+ps -ef|grep $LOGNAME | grep -w $1 |grep -v pts| grep -v killp|awk '{print $2}'|while read tt
+do
+echo "killed $tt"
+kill $tt
+done
+#ps -ef|grep $LOGNAME|grep $1|grep -v grep|awk '{print $2}'|xargs kill -9
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface.so b/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface.so
new file mode 100755
index 000000000..1255edf4a
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_Http.so b/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_Http.so
new file mode 100755
index 000000000..51706f5e9
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_Http.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_Monitor.so b/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_Monitor.so
new file mode 100755
index 000000000..e31698285
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_Monitor.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_WebSocket.so b/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_WebSocket.so
new file mode 100755
index 000000000..e46cb3acf
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/libPacketParse_Interface_WebSocket.so differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/logger.xml b/Build/Prj_CodeBlocks/Linux_Bin/logger.xml
new file mode 100644
index 000000000..24c5a1bf7
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/logger.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/main.xml b/Build/Prj_CodeBlocks/Linux_Bin/main.xml
new file mode 100644
index 000000000..ac5d87a4e
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/main.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/reports/cppunit/report.xml b/Build/Prj_CodeBlocks/Linux_Bin/reports/cppunit/report.xml
new file mode 100644
index 000000000..e69de29bb
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/runpss.sh b/Build/Prj_CodeBlocks/Linux_Bin/runpss.sh
new file mode 100644
index 000000000..3a507577f
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/runpss.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+. ${HOME}/.bash_profile
+
+./killp PurenessScopeServer
+nohup ./PurenessScopeServer > nohup.out 2>&1 &
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/small.ico b/Build/Prj_CodeBlocks/Linux_Bin/small.ico
new file mode 100644
index 000000000..b3ec03bd6
Binary files /dev/null and b/Build/Prj_CodeBlocks/Linux_Bin/small.ico differ
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/valgrind-deadlock.run b/Build/Prj_CodeBlocks/Linux_Bin/valgrind-deadlock.run
new file mode 100644
index 000000000..863516505
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/valgrind-deadlock.run
@@ -0,0 +1 @@
+valgrind --tool=helgrind --log-file=deadlock.log --error-limit=no ./PurenessScopeServer
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/valgrind-efc.run b/Build/Prj_CodeBlocks/Linux_Bin/valgrind-efc.run
new file mode 100644
index 000000000..481213f0b
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/valgrind-efc.run
@@ -0,0 +1 @@
+valgrind --tool=callgrind --separate-threads=yes --log-file=RunLog.log ./PurenessScopeServer
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/valgrind-mem.run b/Build/Prj_CodeBlocks/Linux_Bin/valgrind-mem.run
new file mode 100644
index 000000000..ef9b3e78e
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/valgrind-mem.run
@@ -0,0 +1 @@
+valgrind --tool=memcheck --leak-check=full --show-reachable=yes --log-file=EfcLog.log ./PurenessScopeServer
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/Linux_Bin/valgrind.run b/Build/Prj_CodeBlocks/Linux_Bin/valgrind.run
new file mode 100644
index 000000000..de6bea4ea
--- /dev/null
+++ b/Build/Prj_CodeBlocks/Linux_Bin/valgrind.run
@@ -0,0 +1 @@
+valgrind --tool=memcheck --leak-check=full --show-reachable=yes --log-file=RunLog.log ./PurenessScopeServer
\ No newline at end of file
diff --git a/Build/Prj_CodeBlocks/PSS_2017.workspace b/Build/Prj_CodeBlocks/PSS_2017.workspace
new file mode 100644
index 000000000..6ae41ac63
--- /dev/null
+++ b/Build/Prj_CodeBlocks/PSS_2017.workspace
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/PSS_2017.workspace.layout b/Build/Prj_CodeBlocks/PSS_2017.workspace.layout
new file mode 100644
index 000000000..fa3204539
--- /dev/null
+++ b/Build/Prj_CodeBlocks/PSS_2017.workspace.layout
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/PluginMaker.workspace b/Build/Prj_CodeBlocks/PluginMaker.workspace
new file mode 100644
index 000000000..b1a9ea3dd
--- /dev/null
+++ b/Build/Prj_CodeBlocks/PluginMaker.workspace
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/PluginMaker.workspace.layout b/Build/Prj_CodeBlocks/PluginMaker.workspace.layout
new file mode 100644
index 000000000..2ad4d31df
--- /dev/null
+++ b/Build/Prj_CodeBlocks/PluginMaker.workspace.layout
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/PssSampleClient.workspace b/Build/Prj_CodeBlocks/PssSampleClient.workspace
new file mode 100644
index 000000000..8e0728718
--- /dev/null
+++ b/Build/Prj_CodeBlocks/PssSampleClient.workspace
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/PssSampleClient.workspace.layout b/Build/Prj_CodeBlocks/PssSampleClient.workspace.layout
new file mode 100644
index 000000000..6bf1d01c1
--- /dev/null
+++ b/Build/Prj_CodeBlocks/PssSampleClient.workspace.layout
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/TestNetworkTool.workspace b/Build/Prj_CodeBlocks/TestNetworkTool.workspace
new file mode 100644
index 000000000..20260f2f4
--- /dev/null
+++ b/Build/Prj_CodeBlocks/TestNetworkTool.workspace
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/TestNetworkTool.workspace.layout b/Build/Prj_CodeBlocks/TestNetworkTool.workspace.layout
new file mode 100644
index 000000000..e5034658d
--- /dev/null
+++ b/Build/Prj_CodeBlocks/TestNetworkTool.workspace.layout
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/example-Module.workspace b/Build/Prj_CodeBlocks/example-Module.workspace
new file mode 100644
index 000000000..f226fd577
--- /dev/null
+++ b/Build/Prj_CodeBlocks/example-Module.workspace
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Prj_CodeBlocks/example-Module.workspace.layout b/Build/Prj_CodeBlocks/example-Module.workspace.layout
new file mode 100644
index 000000000..74b6ac04d
--- /dev/null
+++ b/Build/Prj_CodeBlocks/example-Module.workspace.layout
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Build/Windows/Windows_Bin/AutoTestClient.exe b/Build/Windows/Windows_Bin/AutoTestClient.exe
new file mode 100644
index 000000000..88eac1de8
Binary files /dev/null and b/Build/Windows/Windows_Bin/AutoTestClient.exe differ
diff --git a/Build/Windows/Windows_Bin/CheckServer.xml b/Build/Windows/Windows_Bin/CheckServer.xml
new file mode 100644
index 000000000..0560c292f
--- /dev/null
+++ b/Build/Windows/Windows_Bin/CheckServer.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/CommonTCPClient.exe b/Build/Windows/Windows_Bin/CommonTCPClient.exe
new file mode 100644
index 000000000..9f3e9403d
Binary files /dev/null and b/Build/Windows/Windows_Bin/CommonTCPClient.exe differ
diff --git a/Build/Windows/Windows_Bin/Config.xml b/Build/Windows/Windows_Bin/Config.xml
new file mode 100644
index 000000000..37e2b7e84
--- /dev/null
+++ b/Build/Windows/Windows_Bin/Config.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Build/Windows/Windows_Bin/ConsoleCommand.xml b/Build/Windows/Windows_Bin/ConsoleCommand.xml
new file mode 100644
index 000000000..15f743198
--- /dev/null
+++ b/Build/Windows/Windows_Bin/ConsoleCommand.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/FileTest/1.txt b/Build/Windows/Windows_Bin/FileTest/1.txt
new file mode 100644
index 000000000..3c8b0d689
--- /dev/null
+++ b/Build/Windows/Windows_Bin/FileTest/1.txt
@@ -0,0 +1 @@
+01 00 00 10 08 00 00 00 46 45 45 45 45 59 45 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 be cd aa 8f 3c 01 00 00
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/FileTestCfg.xml b/Build/Windows/Windows_Bin/FileTestCfg.xml
new file mode 100644
index 000000000..bf038231c
--- /dev/null
+++ b/Build/Windows/Windows_Bin/FileTestCfg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/FileWatch.xml b/Build/Windows/Windows_Bin/FileWatch.xml
new file mode 100644
index 000000000..edf4e55f6
--- /dev/null
+++ b/Build/Windows/Windows_Bin/FileWatch.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/Icon.jpg b/Build/Windows/Windows_Bin/Icon.jpg
new file mode 100644
index 000000000..b214c3bba
Binary files /dev/null and b/Build/Windows/Windows_Bin/Icon.jpg differ
diff --git a/Build/Windows/Windows_Bin/ListServer_LS.ini b/Build/Windows/Windows_Bin/ListServer_LS.ini
new file mode 100644
index 000000000..80b9a0bce
--- /dev/null
+++ b/Build/Windows/Windows_Bin/ListServer_LS.ini
@@ -0,0 +1,5 @@
+[List]
+Count=1
+LGID0=1001
+LGIP0=127.0.0.1
+LGPort0=10002
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/LoginBufferFile/UserLogin.txt b/Build/Windows/Windows_Bin/LoginBufferFile/UserLogin.txt
new file mode 100644
index 000000000..d1a3de0ee
--- /dev/null
+++ b/Build/Windows/Windows_Bin/LoginBufferFile/UserLogin.txt
@@ -0,0 +1,7 @@
+1001,1000,1000;
+1002,1102,1102;
+1003,1200,1200;
+1004,1400,1400;
+1005,1400,1400;
+1006,1400,1400;
+1007,1700,1700;
diff --git a/Build/Windows/Windows_Bin/LoginBufferFile/UserValid.txt b/Build/Windows/Windows_Bin/LoginBufferFile/UserValid.txt
new file mode 100644
index 000000000..16c3a4d90
--- /dev/null
+++ b/Build/Windows/Windows_Bin/LoginBufferFile/UserValid.txt
@@ -0,0 +1 @@
+freeeyes,123456;
horse,111111;
rabbit,222222;
freeeyes1,123456;
freeeyes2,123456;
freeeyes3,123456;
freeeyes4,123456;
freeeyes5,123456;
freeeyes6,123456;
freeeyes7,123456;
freeeyes8,123456;
freeeyes9,123456;
freeeyes10,123456;
freeeyes11,123456;
freeeyes12,123456;
freeeyes13,123456;
freeeyes14,123456;
freeeyes15,123456;
freeeyes16,123456;
freeeyes17,123456;
freeeyes18,123456;
freeeyes19,123456;
freeeyes20,123456;
freeeyes21,123456;
freeeyes22,123456;
freeeyes23,123456;
freeeyes24,123456;
freeeyes25,123456;
freeeyes26,123456;
freeeyes27,123456;
freeeyes28,123456;
freeeyes29,123456;
freeeyes30,123456;
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/LuaScript/LuaTest.lua b/Build/Windows/Windows_Bin/LuaScript/LuaTest.lua
new file mode 100644
index 000000000..559d4cfae
--- /dev/null
+++ b/Build/Windows/Windows_Bin/LuaScript/LuaTest.lua
@@ -0,0 +1,36 @@
+--һLua PassTcpű
+--ṩ¼ķװͽյ¼ķװ
+--֯ķݺ֤
+--ӿƣҪǿǵ̲߳ٲҪ߳
+--ݿ鲻Ҫڽű㲻ͷ
+--Ŀǰ֧100KݿС
+--add by freeeyes
+
+--Ҫݵ¼PassTCPãʵķݷ
+--ڲnThreadIDǵǰ߳IDszDataϢ(char* )nLenǻȣnSendIndexǵǰӵķʹ
+function LuaTest_SendData(szData, nLen, nThreadID, nSendIndex)
+ --
+ --szDataΪchar* ҪĻ顣
+ --nLenǵǰ
+ --nNextIndex-1˵ֵ,һεʼλ
+
+ --4ֽڰͷ
+ nPacketSize = 10
+ nStartIndex = 0
+ nNextIndex = 0
+ nNextIndex = Lua_Tcp_Buffer_In_Int32(szData, nPacketSize, nStartIndex, nLen)
+
+ --2ֽڵ
+ --nCommandID = 4096
+ --nNextIndex = Lua_Tcp_Buffer_In_Int16(szData, nCommandID, nNextIndex, nLen)
+
+ --ݿ
+ szBuff = '12345678'
+ nNextIndex = Lua_Tcp_Buffer_In_Block(szData, szBuff, 8, nNextIndex, nLen)
+
+ --뷵ݿijȣPassTCP֪ܳ
+ return nNextIndex
+end
+
+
+
diff --git a/Build/Windows/Windows_Bin/LuaScript/RoomLogic.lua b/Build/Windows/Windows_Bin/LuaScript/RoomLogic.lua
new file mode 100644
index 000000000..4f98d6531
--- /dev/null
+++ b/Build/Windows/Windows_Bin/LuaScript/RoomLogic.lua
@@ -0,0 +1,187 @@
+--ڷе
+--add by freeeyes
+
+ROOM_PLAYER_SIZE = 5 --Ҳμӵ
+ROOM_PLAYER_VISITOR_SIZE = 5 --۲ҵ
+
+ROOM_ERROR_NULL = 0 --ȷķֵ
+
+--ҽ뷿䣬nRoomIDIDnPlayerIDID
+function EnterRoom(nRoomID, nPlayerID)
+ --λʾ
+ if LuaFn_Room_API_GetPlayerCount(nRoomID) > ROOM_PLAYER_SIZE then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Room Player is full.")
+ return -1
+ end
+
+ --ڲιʾ
+ if LuaFn_Room_API_GetVisitorPlayerCount(nRoomID) > ROOM_PLAYER_SIZE then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Room Player is full.")
+ return -1
+ end
+
+ --뷿
+ nRet = LuaFn_Room_API_EnterRoom(nRoomID, nPlayerID, "freeeyes", 1000)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom success.")
+
+ --ⲿΪԴ룬ݸ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] EnterRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ return 0
+ end
+end
+
+--£nRoomIDIDnPlayerIDID, nLocationλ
+function SitRoom(nRoomID, nPlayerID, nLocation)
+ --
+ nRet = LuaFn_Room_API_PlayerSit(nRoomID, nPlayerID, nLocation)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom success.")
+
+ --жϷǷڶʱ
+ if LuaFn_RoomTimer_API_Check(nRoomID) == false then
+ --ûжʱչһʱ
+ nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ if nCount > 1 then
+ --жϵǰʱǷڷʱ5
+ if LuaFn_Room_API_CheckRoomUpdateTime(nRoomID, 5) == true then
+ --һĶʱ
+ nRet = LuaFn_RoomTimer_API_Add(2, nRoomID, nPlayerID, 1001)
+ if nRet <= 0 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer fail.[nRet="..nRet.."]")
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer success.[nsecond=5]")
+ end
+ else
+ --һĶʱ
+ nRet = LuaFn_RoomTimer_API_Add(5, nRoomID, nPlayerID, 1001)
+ if nRet <= 0 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer fail.[nRet="..nRet.."]")
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] SitRoom timer success.[nsecond=2]")
+ end
+ end
+ end
+ end
+ end
+ return 0
+end
+
+--뿪nRoomIDIDnPlayerIDID
+function ExitRoom(nRoomID, nPlayerID)
+ --Դ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+
+ --һû
+ --nPlayerID1 = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ --nPlayerID2 = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [nPlayerID1="..nPlayerID1.."][nPlayerID2="..nPlayerID2.."]")
+
+ nRet = LuaFn_Room_API_Exit(nRoomID, nPlayerID)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom fail.[nRet="..nRet.."]")
+ return -1
+ else
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom success.")
+
+ --Դ
+ --nCount = LuaFn_Room_API_GetPlayerCount(nRoomID)
+ --nVisitorCount = LuaFn_Room_API_GetVisitorPlayerCount(nRoomID)
+ --LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] ExitRoom [Count="..nCount.."][Visit Count="..nVisitorCount.."]")
+ return 0
+ end
+end
+
+--߳ҹnRoomIDIDnPlayerIDIDnOperationIDcID
+function OutRoom(nRoomID, nPlayerID, nOperationID)
+
+end
+
+--ұ任䣬nSrcRoomIDԭʼIDnDstRoomIDĿ귿IDnPlayerIDID
+function ChangeRoom(nSrcRoomID, nDstRoomID, nPlayerID)
+
+end
+
+--¼ʱµánEventID¼IDnPlayerIDIDûҴ-1
+function Update(nRoomID, nPlayerID, nEventID, nData)
+ --ע
+ if nEventID == 3001 then
+ nRet = LuaFn_Room_API_SetPlayerBet(nRoomID, nPlayerID, nData)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update SetPlayerBet.[nRet="..nRet.."]")
+ return 0
+ else
+ --ƶһ
+ nNextPlayer = LuaFn_Room_API_GetRoomNextPlayerID(nRoomID)
+ if nNextPlayer > 0 then
+ --㵱ǰִDzһ
+ if LuaFn_Room_GameInfo_API_GetRoundCount(nRoomID) >= 4 then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update LuaFn_Room_GameInfo_API_GetRoundCount.[RoundCount=4]")
+ --ƾֽ
+ else
+
+ --һװ϶ʱ
+ LuaFn_PlayerTimer_API_Add(5, nRoomID, nNextPlayer, 2001)
+ end
+ else
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] Update GetRoomNextPlayerID.[nRet="..nRet.."]")
+ end
+ end
+ end
+
+ return 0
+end
+
+--䣬ȫ˳
+function ClearRoom()
+
+end
+
+--ʼ
+function InitRoom()
+
+end
+
+--PlayerϵĶʱ
+function PlayerTimer(nRoomID, nPlayerID, nEventID)
+ if nEventID == 2001 then
+ --ûע
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] PlayerTimer Begin")
+
+ --ﴦƶĹ
+ end
+end
+
+--Ķʱ
+function RoomTimer(nRoomID, nPlayerID, nEventID)
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] RoomTimer Begin")
+ if nEventID == 1001 then
+ --1001¼ôǵʱ¼(C++˷ƣ´äעСäעԼǷ״̬)
+ nRet = LuaFn_Room_API_DealCode(nRoomID, 1000, -1, -1)
+ if nRet ~= ROOM_ERROR_NULL then
+ LuaFn_Print("RoomID["..nRoomID.."],nPlayerID["..nPlayerID.."] RoomTimer Begin DealCode.[nRet="..nRet.."]")
+ return 0
+ else
+ nCurrPlayerID = LuaFn_Room_API_GetRoomCurrPlayerID(nRoomID)
+
+ --ÿʼIDԴΪִμݣGetRoomNextPlayerIDңִμ+1
+ LuaFn_Room_API_SetBenginePlayerID(nCurrPlayerID)
+
+ --һƵӶʱ
+ LuaFn_PlayerTimer_API_Add(5, nRoomID, nPlayerID, 2001)
+ end
+ end
+end
+
diff --git a/Build/Windows/Windows_Bin/Module/AutoTest.dll b/Build/Windows/Windows_Bin/Module/AutoTest.dll
new file mode 100644
index 000000000..817c43216
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/AutoTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/FtpTest.dll b/Build/Windows/Windows_Bin/Module/FtpTest.dll
new file mode 100644
index 000000000..5d0145a2f
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/FtpTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/HttpTest.dll b/Build/Windows/Windows_Bin/Module/HttpTest.dll
new file mode 100644
index 000000000..5bf191efa
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/HttpTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/LGLogic.dll b/Build/Windows/Windows_Bin/Module/LGLogic.dll
new file mode 100644
index 000000000..0ff837e68
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/LGLogic.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/LSLogic.dll b/Build/Windows/Windows_Bin/Module/LSLogic.dll
new file mode 100644
index 000000000..25179473f
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/LSLogic.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/LinuxQueue.dll b/Build/Windows/Windows_Bin/Module/LinuxQueue.dll
new file mode 100644
index 000000000..381982e6d
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/LinuxQueue.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/Login.dll b/Build/Windows/Windows_Bin/Module/Login.dll
new file mode 100644
index 000000000..1c9ed6e44
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/Login.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/LuaTest.dll b/Build/Windows/Windows_Bin/Module/LuaTest.dll
new file mode 100644
index 000000000..ff5cfd226
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/LuaTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/MonitorServer.dll b/Build/Windows/Windows_Bin/Module/MonitorServer.dll
new file mode 100644
index 000000000..cf4ddc7e4
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/MonitorServer.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/PlugA.dll b/Build/Windows/Windows_Bin/Module/PlugA.dll
new file mode 100644
index 000000000..89c545fb2
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/PlugA.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/PlugB.dll b/Build/Windows/Windows_Bin/Module/PlugB.dll
new file mode 100644
index 000000000..cc698f8db
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/PlugB.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/ProxyServer.exe b/Build/Windows/Windows_Bin/Module/ProxyServer.exe
new file mode 100644
index 000000000..533a24223
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/ProxyServer.exe differ
diff --git a/Build/Windows/Windows_Bin/Module/ProxyTest.dll b/Build/Windows/Windows_Bin/Module/ProxyTest.dll
new file mode 100644
index 000000000..7c63c1800
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/ProxyTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/RealTimeMonitor.dll b/Build/Windows/Windows_Bin/Module/RealTimeMonitor.dll
new file mode 100644
index 000000000..a56bccb96
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/RealTimeMonitor.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/TTyTest.dll b/Build/Windows/Windows_Bin/Module/TTyTest.dll
new file mode 100644
index 000000000..ca1f08cf3
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/TTyTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/TcpTest.dll b/Build/Windows/Windows_Bin/Module/TcpTest.dll
new file mode 100644
index 000000000..231fb6d69
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/TcpTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/TcpTestPost.dll b/Build/Windows/Windows_Bin/Module/TcpTestPost.dll
new file mode 100644
index 000000000..85ee01dfe
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/TcpTestPost.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/TimerTest.dll b/Build/Windows/Windows_Bin/Module/TimerTest.dll
new file mode 100644
index 000000000..378da4bc3
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/TimerTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/UDPTest.dll b/Build/Windows/Windows_Bin/Module/UDPTest.dll
new file mode 100644
index 000000000..2fb67b166
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/UDPTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/UDPTestPost.dll b/Build/Windows/Windows_Bin/Module/UDPTestPost.dll
new file mode 100644
index 000000000..76c3c3956
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/UDPTestPost.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/Watch.exe b/Build/Windows/Windows_Bin/Module/Watch.exe
new file mode 100644
index 000000000..8850be35d
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/Watch.exe differ
diff --git a/Build/Windows/Windows_Bin/Module/WebSocketTest.dll b/Build/Windows/Windows_Bin/Module/WebSocketTest.dll
new file mode 100644
index 000000000..d0b2ec6f7
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/WebSocketTest.dll differ
diff --git a/Build/Windows/Windows_Bin/Module/XMLParse.dll b/Build/Windows/Windows_Bin/Module/XMLParse.dll
new file mode 100644
index 000000000..52936558d
Binary files /dev/null and b/Build/Windows/Windows_Bin/Module/XMLParse.dll differ
diff --git a/Build/Windows/Windows_Bin/PSSLoginClient.exe b/Build/Windows/Windows_Bin/PSSLoginClient.exe
new file mode 100644
index 000000000..df89e362b
Binary files /dev/null and b/Build/Windows/Windows_Bin/PSSLoginClient.exe differ
diff --git a/Build/Windows/Windows_Bin/PSSPlugClient.exe b/Build/Windows/Windows_Bin/PSSPlugClient.exe
new file mode 100644
index 000000000..f07295df9
Binary files /dev/null and b/Build/Windows/Windows_Bin/PSSPlugClient.exe differ
diff --git a/Build/Windows/Windows_Bin/PSSProxyClient.exe b/Build/Windows/Windows_Bin/PSSProxyClient.exe
new file mode 100644
index 000000000..2adce25a9
Binary files /dev/null and b/Build/Windows/Windows_Bin/PSSProxyClient.exe differ
diff --git a/Build/Windows/Windows_Bin/PSS_ClientManager.exe b/Build/Windows/Windows_Bin/PSS_ClientManager.exe
new file mode 100644
index 000000000..ca2592fa5
Binary files /dev/null and b/Build/Windows/Windows_Bin/PSS_ClientManager.exe differ
diff --git a/Build/Windows/Windows_Bin/PSS_vc2017_R.exe b/Build/Windows/Windows_Bin/PSS_vc2017_R.exe
new file mode 100644
index 000000000..8a88cc150
Binary files /dev/null and b/Build/Windows/Windows_Bin/PSS_vc2017_R.exe differ
diff --git a/Build/Windows/Windows_Bin/PacketParse_Interface.dll b/Build/Windows/Windows_Bin/PacketParse_Interface.dll
new file mode 100644
index 000000000..bda503d51
Binary files /dev/null and b/Build/Windows/Windows_Bin/PacketParse_Interface.dll differ
diff --git a/Build/Windows/Windows_Bin/PacketParse_VS2017.dll b/Build/Windows/Windows_Bin/PacketParse_VS2017.dll
new file mode 100644
index 000000000..7f0878cce
Binary files /dev/null and b/Build/Windows/Windows_Bin/PacketParse_VS2017.dll differ
diff --git a/Build/Windows/Windows_Bin/PacketParse_VS2017_Http.dll b/Build/Windows/Windows_Bin/PacketParse_VS2017_Http.dll
new file mode 100644
index 000000000..2f962b031
Binary files /dev/null and b/Build/Windows/Windows_Bin/PacketParse_VS2017_Http.dll differ
diff --git a/Build/Windows/Windows_Bin/PacketParse_VS2017_WebSocket.dll b/Build/Windows/Windows_Bin/PacketParse_VS2017_WebSocket.dll
new file mode 100644
index 000000000..90ffab8f9
Binary files /dev/null and b/Build/Windows/Windows_Bin/PacketParse_VS2017_WebSocket.dll differ
diff --git a/Build/Windows/Windows_Bin/PassTCP.exe b/Build/Windows/Windows_Bin/PassTCP.exe
new file mode 100644
index 000000000..708bf318b
Binary files /dev/null and b/Build/Windows/Windows_Bin/PassTCP.exe differ
diff --git a/Build/Windows/Windows_Bin/PssFtpClient.exe b/Build/Windows/Windows_Bin/PssFtpClient.exe
new file mode 100644
index 000000000..5d13247a0
Binary files /dev/null and b/Build/Windows/Windows_Bin/PssFtpClient.exe differ
diff --git a/Build/Windows/Windows_Bin/Test.exe b/Build/Windows/Windows_Bin/Test.exe
new file mode 100644
index 000000000..f15a5ec37
Binary files /dev/null and b/Build/Windows/Windows_Bin/Test.exe differ
diff --git a/Build/Windows/Windows_Bin/XML2CPP.exe b/Build/Windows/Windows_Bin/XML2CPP.exe
new file mode 100644
index 000000000..61cbccae1
Binary files /dev/null and b/Build/Windows/Windows_Bin/XML2CPP.exe differ
diff --git a/Build/Windows/Windows_Bin/alert.xml b/Build/Windows/Windows_Bin/alert.xml
new file mode 100644
index 000000000..3fd8438d1
--- /dev/null
+++ b/Build/Windows/Windows_Bin/alert.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/forbiddenIP.xml b/Build/Windows/Windows_Bin/forbiddenIP.xml
new file mode 100644
index 000000000..cc74ee7d4
--- /dev/null
+++ b/Build/Windows/Windows_Bin/forbiddenIP.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/logger.xml b/Build/Windows/Windows_Bin/logger.xml
new file mode 100644
index 000000000..0cb53b0d9
--- /dev/null
+++ b/Build/Windows/Windows_Bin/logger.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/main.xml b/Build/Windows/Windows_Bin/main.xml
new file mode 100644
index 000000000..3f06a036b
--- /dev/null
+++ b/Build/Windows/Windows_Bin/main.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Build/Windows/Windows_Bin/small.ico b/Build/Windows/Windows_Bin/small.ico
new file mode 100644
index 000000000..b3ec03bd6
Binary files /dev/null and b/Build/Windows/Windows_Bin/small.ico differ
diff --git a/Build_Windows.bat b/Build_Windows.bat
new file mode 100644
index 000000000..96b5c2958
--- /dev/null
+++ b/Build_Windows.bat
@@ -0,0 +1,57 @@
+@echo off
+
+echo "Check Vs Path..."
+REM echo %VS140COMNTOOLS%
+set VSFind="false"
+set VSPath=%VS140COMNTOOLS%
+if defined VSPath (
+ echo "Find VS2015"
+ set VSFind="true"
+) else (
+ echo "No Find VS2015, You must install vs2015"
+)
+
+if %VSFind%=="true" (
+echo "Check Vs OK"
+)
+echo "Check ACE Path..."
+REM echo %VS140COMNTOOLS%
+set ACEFind="false"
+set ACEPath=%ACE_ROOT%
+if defined ACEPath (
+ echo "Find ACE"
+ set VSFind="true"
+) else (
+ echo "No Find ACE, begin download ace..."
+ powershell -Command "Invoke-WebRequest http://download.dre.vanderbilt.edu/previous_versions/ACE-6.4.0.zip -OutFile ACE-src-6.4.0.zip"
+ echo "download ace ok"
+ echo "download ace expand zip begin..."
+ powershell -Command "Expand-Archive 'ACE-6.4.0.zip' '.\'"
+ echo "download ace expand zip end..."
+ echo "create ace config.h begin..."
+ powershell -Command "New-Item .\ACE_wrappers\ace\config.h -type file -force"
+ powershell -Command "'#define ACE_HAS_STANDARD_LIBRARY 1' >> '.\ACE_wrappers\ace\config.h'"
+ powershell -Command "'#define ACE_HAS_IPV6' >> '.\ACE_wrappers\ace\config.h'"
+ powershell -Command "'#include \"ace/config-win32.h\"' >> '.\ACE_wrappers\ace\config.h'"
+ echo "create ace config.h end..."\
+ echo "compile ace begin..."
+ cmake -G "Visual Studio 15 Win64" ..
+ "%VSPath%..\IDE\Devenv" .\ACE_wrappers\ace\ace_vc14.sln /build "Debug|x64" /project .\ACE_wrappers\ace\ACE_vc14.vcxproj
+ echo "compile ace end..."
+ echo "set environment ACE_ROOT begin..."
+ set CurrPath=%cd%\ACE_wrappers\
+ echo %CurrPath%
+ setx /M ACE_ROOT "%CurrPath%"
+ echo "set environment ACE_ROOT end..."
+ echo "set environment PATH begin..."
+ wmic ENVIRONMENT where "name='path' and username=''" set VariableValue="%path%;%ACE_ROOT%\bin"
+ echo "set environment PATH end..."
+)
+
+if %VSFind%=="true" (
+echo "Check ACE OK"
+)
+
+
+
+
diff --git a/CppUnitTest/CMakeLists.txt b/CppUnitTest/CMakeLists.txt
new file mode 100644
index 000000000..fdbc7811f
--- /dev/null
+++ b/CppUnitTest/CMakeLists.txt
@@ -0,0 +1,95 @@
+# -*- CMakeLists.txt generated by CodeLite IDE. Do not edit by hand -*-
+
+cmake_minimum_required(VERSION 2.8.11)
+
+# Project name
+project(Test)
+
+# This setting is useful for providing JSON file used by CodeLite for code completion
+set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
+
+# Set default locations
+set(CL_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../Build/Linux/cmake-build-Release/output)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})
+
+set(CONFIGURATION_NAME "Release")
+
+# Projects
+
+
+# Top project
+# Define some variables
+set(PROJECT_Test_PATH "${CMAKE_CURRENT_LIST_DIR}")
+set(WORKSPACE_PATH "${CMAKE_CURRENT_LIST_DIR}/../Build/Linux")
+
+
+
+#{{{{ User Code 1
+# Place your code here
+#}}}}
+
+include_directories(
+ .
+ .
+ ../ThirdLib/thirdparty
+ ../ThirdLib/include
+
+)
+
+
+# Compiler options
+add_definitions(-g -Wall)
+add_definitions(
+ -D_LINUX_PLATFORM_
+)
+
+
+# Linker options
+set(LINK_OPTIONS -O0)
+
+
+if(WIN32)
+ # Resource options
+endif(WIN32)
+
+# Library path
+set(CMAKE_LDFLAGS "${CMAKE_LDFLAGS} -L. -L. -LRelease ")
+
+# Define the CXX sources
+set ( CXX_SRCS
+ ${CMAKE_CURRENT_LIST_DIR}/./Test/testcase.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/./Test/test_linux.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/../ThirdLib/thirdparty/sock_wrap.cpp
+)
+
+set_source_files_properties(
+ ${CXX_SRCS} PROPERTIES COMPILE_FLAGS
+ " -g -Wall")
+
+if(WIN32)
+ enable_language(RC)
+ set(CMAKE_RC_COMPILE_OBJECT
+ " ${RC_OPTIONS} -O coff -i -o