OSDN Git Service

stop using trunk directory in rectool
[rec10/rec10-git.git] / dist / trunk / b25-remote / CasProxy.cpp
1 // 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
2 //\r
3 //////////////////////////////////////////////////////////////////////\r
4 \r
5 \r
6 #include "CasProxy.h"\r
7 #include <stdio.h>\r
8 \r
9 #define TCP_TIMEOUT     1000UL  // 1\95b\r
10 \r
11 \r
12 DWORD CCasProxy::dwErrorDelayTime = 0UL;\r
13 \r
14 \r
15 CCasProxy::CCasProxy(void)\r
16 {\r
17 \r
18 }\r
19 \r
20 CCasProxy::~CCasProxy(void)\r
21 {\r
22         // \83T\81[\83o\82©\82ç\90Ø\92f\r
23         m_Socket.Close();\r
24 }\r
25 \r
26 const BOOL CCasProxy::Connect(void)\r
27 {\r
28 /*
29         // \83G\83\89\81[\94­\90\8e\9e\82Ì\83K\81[\83h\83C\83\93\83^\81[\83o\83\8b\r
30         if(dwErrorDelayTime){\r
31                 if((::GetTickCount() - dwErrorDelayTime) < TCP_TIMEOUT)return FALSE;\r
32                 else dwErrorDelayTime = 0UL;\r
33                 }\r
34 */\r
35         // \83T\81[\83o\82É\90Ú\91±
36         char* env = getenv("B25_SERVER_IP");
37         LPCTSTR lpszHost;
38         WORD wPort;
39         if (env) {
40                 lpszHost = env;
41         }
42         else {
43                 lpszHost = "127.0.0.1";
44         }
45         env = getenv("B25_SERVER_PORT");
46         if (env) {
47                 wPort = atoi(env);
48         }
49         else {
50                 wPort = 6900;
51         }
52
53         if(m_Socket.Connect(lpszHost, wPort, TCP_TIMEOUT)){\r
54                 return TRUE;\r
55         }\r
56         else{
57                 //dwErrorDelayTime = ::GetTickCount();\r
58                 return FALSE;\r
59         }\r
60 }\r
61 \r
62 const DWORD CCasProxy::TransmitCommand(const BYTE *pSendData, const DWORD dwSendSize, BYTE *pRecvData)\r
63 {\r
64         // \91\97\90M\83f\81[\83^\8f\80\94õ\r
65         BYTE SendBuf[256];\r
66         SendBuf[0] = (BYTE)dwSendSize;\r
67         memcpy(&SendBuf[1], pSendData, dwSendSize);\r
68 \r
69         try{\r
70                 // \83\8a\83N\83G\83X\83g\91\97\90M\r
71                 if(!m_Socket.Send(SendBuf, dwSendSize + 1UL, TCP_TIMEOUT))throw (const DWORD)__LINE__;\r
72         \r
73                 // \83\8c\83X\83|\83\93\83X\83w\83b\83_\8eó\90M\r
74                 if(!m_Socket.Recv(SendBuf, 1UL, TCP_TIMEOUT))throw (const DWORD)__LINE__;\r
75 \r
76                 // \83\8c\83X\83|\83\93\83X\83f\81[\83^\8eó\90M\r
77                 if(!m_Socket.Recv(pRecvData, SendBuf[0], TCP_TIMEOUT))throw (const DWORD)__LINE__;\r
78                 }\r
79         catch(const DWORD dwLine){\r
80                 // \92Ê\90M\83G\83\89\81[\94­\90\r
81                 m_Socket.Close();\r
82                 return 0UL;\r
83                 }\r
84                 \r
85         return SendBuf[0];\r
86 }
87