-// 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
+// CasProxy.cpp: CCasProxy クラスのインプリメンテーション
+//
+//////////////////////////////////////////////////////////////////////
+
+
+#include "CasProxy.h"
+#include <stdio.h>
+
+#define TCP_TIMEOUT 1000UL // 1秒
+
+
+DWORD CCasProxy::dwErrorDelayTime = 0UL;
+
+
+CCasProxy::CCasProxy(void)
+{
+
+}
+
+CCasProxy::~CCasProxy(void)
+{
+ // サーバから切断
+ m_Socket.Close();
+}
+
+const BOOL CCasProxy::Connect(void)
+{
/*
- // \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±
+ // エラー発生時のガードインターバル
+ if(dwErrorDelayTime){
+ if((::GetTickCount() - dwErrorDelayTime) < TCP_TIMEOUT)return FALSE;
+ else dwErrorDelayTime = 0UL;
+ }
+*/
+ // サーバに接続
char* env = getenv("B25_SERVER_IP");
LPCTSTR lpszHost;
WORD wPort;
wPort = 6900;
}
- if(m_Socket.Connect(lpszHost, wPort, TCP_TIMEOUT)){\r
- return TRUE;\r
- }\r
+ if(m_Socket.Connect(lpszHost, wPort, TCP_TIMEOUT)){
+ return TRUE;
+ }
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
+ //dwErrorDelayTime = ::GetTickCount();
+ return FALSE;
+ }
+}
+
+const DWORD CCasProxy::TransmitCommand(const BYTE *pSendData, const DWORD dwSendSize, BYTE *pRecvData)
+{
+ // 送信データ準備
+ BYTE SendBuf[256];
+ SendBuf[0] = (BYTE)dwSendSize;
+ memcpy(&SendBuf[1], pSendData, dwSendSize);
+
+ try{
+ // リクエスト送信
+ if(!m_Socket.Send(SendBuf, dwSendSize + 1UL, TCP_TIMEOUT))throw (const DWORD)__LINE__;
+
+ // レスポンスヘッダ受信
+ if(!m_Socket.Recv(SendBuf, 1UL, TCP_TIMEOUT))throw (const DWORD)__LINE__;
+
+ // レスポンスデータ受信
+ if(!m_Socket.Recv(pRecvData, SendBuf[0], TCP_TIMEOUT))throw (const DWORD)__LINE__;
+ }
+ catch(const DWORD dwLine){
+ // 通信エラー発生
+ m_Socket.Close();
+ return 0UL;
+ }
+
+ return SendBuf[0];
}