OSDN Git Service

add dist
[rec10/rec10-git.git] / dist / trunk / b25-remote / CasProxy.cpp
diff --git a/dist/trunk/b25-remote/CasProxy.cpp b/dist/trunk/b25-remote/CasProxy.cpp
new file mode 100755 (executable)
index 0000000..dbf0330
--- /dev/null
@@ -0,0 +1,87 @@
+// CasProxy.cpp: CCasProxy \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93\r
+//\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+\r
+#include "CasProxy.h"\r
+#include <stdio.h>\r
+\r
+#define TCP_TIMEOUT    1000UL  // 1\95b\r
+\r
+\r
+DWORD CCasProxy::dwErrorDelayTime = 0UL;\r
+\r
+\r
+CCasProxy::CCasProxy(void)\r
+{\r
+\r
+}\r
+\r
+CCasProxy::~CCasProxy(void)\r
+{\r
+       // \83T\81[\83o\82©\82ç\90Ø\92f\r
+       m_Socket.Close();\r
+}\r
+\r
+const BOOL CCasProxy::Connect(void)\r
+{\r
+/*
+       // \83G\83\89\81[\94­\90\8e\9e\82Ì\83K\81[\83h\83C\83\93\83^\81[\83o\83\8b\r
+       if(dwErrorDelayTime){\r
+               if((::GetTickCount() - dwErrorDelayTime) < TCP_TIMEOUT)return FALSE;\r
+               else dwErrorDelayTime = 0UL;\r
+               }\r
+*/\r
+       // \83T\81[\83o\82É\90Ú\91±
+       char* env = getenv("B25_SERVER_IP");
+       LPCTSTR lpszHost;
+       WORD wPort;
+       if (env) {
+               lpszHost = env;
+       }
+       else {
+               lpszHost = "127.0.0.1";
+       }
+       env = getenv("B25_SERVER_PORT");
+       if (env) {
+               wPort = atoi(env);
+       }
+       else {
+               wPort = 6900;
+       }
+
+       if(m_Socket.Connect(lpszHost, wPort, TCP_TIMEOUT)){\r
+               return TRUE;\r
+       }\r
+       else{
+               //dwErrorDelayTime = ::GetTickCount();\r
+               return FALSE;\r
+       }\r
+}\r
+\r
+const DWORD CCasProxy::TransmitCommand(const BYTE *pSendData, const DWORD dwSendSize, BYTE *pRecvData)\r
+{\r
+       // \91\97\90M\83f\81[\83^\8f\80\94õ\r
+       BYTE SendBuf[256];\r
+       SendBuf[0] = (BYTE)dwSendSize;\r
+       memcpy(&SendBuf[1], pSendData, dwSendSize);\r
+\r
+       try{\r
+               // \83\8a\83N\83G\83X\83g\91\97\90M\r
+               if(!m_Socket.Send(SendBuf, dwSendSize + 1UL, TCP_TIMEOUT))throw (const DWORD)__LINE__;\r
+       \r
+               // \83\8c\83X\83|\83\93\83X\83w\83b\83_\8eó\90M\r
+               if(!m_Socket.Recv(SendBuf, 1UL, TCP_TIMEOUT))throw (const DWORD)__LINE__;\r
+\r
+               // \83\8c\83X\83|\83\93\83X\83f\81[\83^\8eó\90M\r
+               if(!m_Socket.Recv(pRecvData, SendBuf[0], TCP_TIMEOUT))throw (const DWORD)__LINE__;\r
+               }\r
+       catch(const DWORD dwLine){\r
+               // \92Ê\90M\83G\83\89\81[\94­\90\r
+               m_Socket.Close();\r
+               return 0UL;\r
+               }\r
+               \r
+       return SendBuf[0];\r
+}
+