C++ HTTP Stack  0.10
클래스 | 함수
TcpStack

TCP 통신 라이브러리 더 자세히 ...

클래스

class  CTcpClientIndex
 TCP 쓰레드 정보 더 자세히 ...
class  CTcpClientInfo
 TCP 클라이언트 정보 더 자세히 ...
class  CTcpClientMap
 TCP 클라이언트로 연결하여서 TCP 패킷을 전송하는 클래스 더 자세히 ...
class  CTcpClientArg
 TCP 클라이언트 쓰레드 실행 인자 더 자세히 ...
class  ITcpSessionApp
 TCP 세션별로 응용에서 사용할 변수를 위한 인터페이스 더 자세히 ...
class  CTcpSessionInfo
 TCP 쓰레드 별로 관리하는 TCP 세션 정보 더 자세히 ...
class  CTcpSessionList
 TCP 쓰레드 별로 관리하는 TCP 세션 정보를 저장하는 클래스 - m_bUseThreadPipe 가 true 일 때에 사용된다. 더 자세히 ...
class  CTcpSessionMap
 TCP 세션 정보를 저장하는 클래스 - m_bUseThreadPipe 가 false 일 때에 사용되는 클래스 더 자세히 ...
class  CTcpStack
 TCP listen / connect 및 수신/전송 클래스 더 자세히 ...
class  ITcpStackCallBack
 CTcpStack 을 사용하는 응용 callback 인터페이스 더 자세히 ...
class  CTcpStackSetup
 TCP stack 설정 더 자세히 ...
class  CTcpComm
 TCP 쓰레드에 TCP 세션을 전달할 때에 사용되는 클래스 - m_bUseThreadPipe 가 true 일 때에 사용된다. 더 자세히 ...
class  CTcpThreadInfo
 쓰레드 리스트에 포함되는 하나의 쓰레드 정보 저장 클래스 더 자세히 ...
class  CTcpThreadList
 쓰레드 리스트 자료구조 더 자세히 ...

함수

bool SetupFileLog (CFileLog &clsFileLog, CXmlElement &clsElement)
 Xml element 의 설정값들로 CFileLog 를 시작한다.
THREAD_API TcpClientThread (LPVOID lpParameter)
 TCP 연결 Thread.
bool StartTcpClientThread (const char *pszIp, int iPort, CTcpStack *pclsStack)
 TCP 연결 Thread 를 시작한다.
THREAD_API TcpListenThread (LPVOID lpParameter)
 TCP 서버 쓰레드
bool IsTcpListenThreadRun ()
 TCP listen 쓰레드가 실행중인가?
THREAD_API TcpNoPipeThread (LPVOID lpParameter)
 pipe 를 사용하지 않는 TCP 세션 쓰레드 함수 - m_bUseThreadPipe 가 false 일 때에 사용된다.
THREAD_API TcpPipeThread (LPVOID lpParameter)
 TCP 세션을 위한 쓰레드 함수
virtual bool ITcpStackCallBack::InComingConnected (CTcpSessionInfo *pclsSessionInfo)=0
 TCP 클라이언트가 연결 이벤트 핸들러
virtual void ITcpStackCallBack::SessionClosed (CTcpSessionInfo *pclsSessionInfo)=0
 TCP 클라이언트 세션이 종료 이벤트 핸들러
virtual bool ITcpStackCallBack::RecvPacket (char *pszPacket, int iPacketLen, CTcpSessionInfo *pclsSessionInfo)=0
 TCP 패킷 수신 이벤트 핸들러
virtual bool ITcpStackCallBack::IsSendAll (CTcpSessionInfo *pclsSessionInfo)
 SendAll 로 전송해도 되는 세션인지 검사한다.
virtual void ITcpStackCallBack::AfterSendAllPerSession (CTcpSessionInfo *pclsSessionInfo, const char *pszPacket, int iPacketLen)
 SendAll 로 전송할 때에 세션당 Send 함수 호출후, 호출되는 이벤트 핸들러
bool SSLServerStart (const char *szCertFile)
 SSL 서버 라이브러리를 시작한다.
bool SSLServerStop ()
 SSL 서버 라이브러리를 종료한다.
bool SSLClientStart ()
 SSL 클라이언트 라이브러리를 시작한다.
bool SSLClientStop ()
 SSL 클라이언트 라이브러리를 종료한다.
void SSLFinal ()
 프로세스가 종료될 때에 최종적으로 실행하여서 openssl 메모리 누수를 출력하지 않는다.
bool SSLAccept (Socket iFd, SSL **ppsttSsl, bool bCheckClientCert, int iVerifyDepth, int iAcceptTimeout)
 클라이언트 SSL 접속 요청을 허용한다.
int SSLSend (SSL *ssl, const char *szBuf, int iBufLen)
 SSL 프로토콜로 패킷을 전송한다.
int SSLRecv (SSL *ssl, char *szBuf, int iBufLen)
 SSL 프로토콜로 수신된 패킷을 읽는다.
bool SSLClose (SSL *ssl)
 SSL 세션을 종료한다.
void SSLPrintLogServerCipherList ()
 SSL 서버에서 사용되는 cipher list 를 로그로 출력한다.
void SSLPrintLogClientCipherList ()
 SSL 클라이언트에서 사용되는 cipher list 를 로그로 출력한다.
bool CTcpClientMap::Create (CTcpStack *pclsStack)
 CTcpStack 객체를 설정한다.
bool CTcpClientMap::Send (const char *pszIp, int iPort, const char *pszPacket, int iPacketLen, bool bConnectIfNoSession)
 TCP 서버에 연결하여서 TCP 패킷을 전송한다.
bool CTcpClientMap::Delete (const char *pszIp, int iPort)
 TCP 연결 정보를 삭제한다.
bool CTcpClientMap::DeleteSendPacketList (const char *pszIp, int iPort, SEND_PACKET_LIST &clsList)
 TCP 연결 후, 전송할 패킷 리스트를 삭제한다.
bool CTcpClientMap::SetConnected (const char *pszIp, int iPort, int iThreadIndex, int iSessionIndex)
 TCP 연결됨으로 설정한다.
bool CTcpClientMap::Insert (const char *pszIp, int iPort, int iThreadIndex, int iSessionIndex)
 TCP 연결을 저장한다.
bool CTcpSessionInfo::Send (const char *pszPacket, int iPacketLen)
 TCP 패킷을 전송한다.
void CTcpSessionInfo::Log (const char *pszPacket, int iPacketLen, bool bSend)
 TCP 전송/수신에 대한 로그를 출력한다.
void CTcpSessionInfo::Clear ()
 세션 정보를 초기화시킨다.
bool CTcpSessionList::Init (int iThreadIndex, int iPollFdMax)
 TCP 세션 정보를 초기화시킨다.
bool CTcpSessionList::Insert (Socket hSocket)
 TCP 소켓을 추가한다.
int CTcpSessionList::Insert (CTcpComm &clsTcpComm)
 TCP 세션 정보를 추가한다.
bool CTcpSessionList::Delete (int iIndex)
 TCP 세션 정보를 삭제한다.
void CTcpSessionList::DeleteAll ()
 모든 TCP 세션 정보를 삭제한다.
void CTcpSessionList::DeleteTimeout (int iTimeout, int iNoPacketTimeout, void(*BeforeDelete)(CTcpSessionList *pclsSessionList, int iIndex, void *pclsArg), void *pclsArg)
 TCP 수신 timeout 이 발생한 TCP 세션을 종료시킨다.
bool CTcpSessionList::Send (int iIndex, const char *pszPacket, int iPacketLen)
 특정 세션에 패킷을 전송한다.
bool CTcpSessionList::SendAll (const char *pszPacket, int iPacketLen, ITcpStackCallBack *pclsCallBack)
 모든 세션에 패킷을 전송한다.
bool CTcpSessionList::SendAllExcept (const char *pszPacket, int iPacketLen, ITcpStackCallBack *pclsCallBack, int iThreadIndex, int iSessionIndex)
 모든 세션에 패킷을 전송한다.
bool CTcpSessionMap::Insert (const char *pszIp, int iPort, CTcpSessionInfo *pclsSessionInfo)
 TCP 세션 정보를 저장한다.
bool CTcpSessionMap::Delete (const char *pszIp, int iPort)
 TCP 세션 정보를 삭제한다.
int CTcpSessionMap::GetCount ()
 세션 개수를 리턴한다.
bool CTcpSessionMap::Send (const char *pszIp, int iPort, const char *pszPacket, int iPacketLen)
 특정 세션에 TCP 패킷을 전송한다.
bool CTcpSessionMap::Send (int iThreadIndex, const char *pszPacket, int iPacketLen)
 특정 세션에 TCP 패킷을 전송한다.
bool CTcpSessionMap::SendAll (const char *pszPacket, int iPacketLen, ITcpStackCallBack *pclsCallBack)
 모든 세션에 TCP 패킷을 전송한다.
bool CTcpSessionMap::SendAllExcept (const char *pszPacket, int iPacketLen, ITcpStackCallBack *pclsCallBack, int iThreadIndex, int iSessionIndex)
 특정 세션을 제외한 모든 세션에 TCP 패킷을 전송한다.
bool CTcpStack::Start (CTcpStackSetup *pclsSetup, ITcpStackCallBack *pclsCallBack)
 TCP stack 을 시작한다.
bool CTcpStack::Stop ()
 TCP stack 을 중지한다.
bool CTcpStack::Send (const char *pszIp, int iPort, const char *pszPacket, int iPacketLen, bool bConnectIfNoSession)
 특정 세션에 TCP 패킷을 전송한다.
bool CTcpStack::Send (int iThreadIndex, int iSessionIndex, const char *pszPacket, int iPacketLen)
 특정 세션에 TCP 패킷을 전송한다.
bool CTcpStack::SendAll (const char *pszPacket, int iPacketLen)
 모든 세션에 TCP 패킷을 전송한다.
bool CTcpStack::SendAllExcept (const char *pszPacket, int iPacketLen, int iThreadIndex, int iSessionIndex)
 특정 세션을 제외한 모든 세션에 TCP 패킷을 전송한다.
bool CTcpStackSetup::Parse (CXmlElement &clsXml)
 XML element 에서 TCP stack 설정 사항을 가져온다.
void CTcpThreadInfo::Close ()
 소켓을 종료한다.
bool CTcpThreadList::Create (CTcpStack *pclsStack)
 쓰레드 리스트를 시작한다.
void CTcpThreadList::Destroy ()
 쓰레드 리스트를 종료한다.
bool CTcpThreadList::SendCommand (const char *pszData, int iDataLen)
 쓰레드에 명령을 전송한다.
bool CTcpThreadList::SendCommand (const char *pszData, int iDataLen, int iThreadIndex)
 지정된 쓰레드 번호의 쓰레드로 명령을 전송한다.
void CTcpThreadList::SendCommandAll (const char *pszData, int iDataLen)
 모든 쓰레드에 명령을 전달한다.
static int CTcpThreadList::RecvCommand (Socket hSocket, char *pszData, int iDataSize)
 명령을 수신한다.
bool CTcpThreadList::Send (int iThreadIndex, int iSessionIndex, const char *pszPacket, int iPacketLen)
 특정 세션에 TCP 패킷을 전송한다.
bool CTcpThreadList::SendAll (const char *pszPacket, int iPacketLen, ITcpStackCallBack *pclsCallBack)
 모든 세션에 TCP 패킷을 전송한다.
bool CTcpThreadList::SendAllExcept (const char *pszPacket, int iPacketLen, ITcpStackCallBack *pclsCallBack, int iThreadIndex, int iSessionIndex)
 모든 세션에 TCP 패킷을 전송한다.
void CTcpThreadList::DeleteNoUseThread ()
 TCP 클라이언트와 연결되지 않은 쓰레드를 삭제한다.
bool CTcpThreadList::DeleteThread (int iThreadIndex)
 쓰레드 정보를 삭제한다.
void CTcpThreadList::GetString (CMonitorString &strBuf)
 쓰레드 정보를 하나의 문자열에 저장한다.

상세한 설명

TCP 통신 라이브러리

함수 문서화

virtual void ITcpStackCallBack::AfterSendAllPerSession ( CTcpSessionInfo pclsSessionInfo,
const char *  pszPacket,
int  iPacketLen 
)
inlinevirtual

SendAll 로 전송할 때에 세션당 Send 함수 호출후, 호출되는 이벤트 핸들러

매개변수
pclsSessionInfo세션 정보
pszPacket전송한 패킷
iPacketLen전송 패킷 길이
void CTcpSessionInfo::Clear ( )

세션 정보를 초기화시킨다.

void CTcpThreadInfo::Close ( )

소켓을 종료한다.

bool CTcpClientMap::Create ( CTcpStack pclsStack)

CTcpStack 객체를 설정한다.

매개변수
pclsStackCTcpStack 객체
반환값
true 를 리턴한다.
bool CTcpThreadList::Create ( CTcpStack pclsStack)

쓰레드 리스트를 시작한다.

매개변수
pclsStackCTcpStack 객체
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSessionMap::Delete ( const char *  pszIp,
int  iPort 
)

TCP 세션 정보를 삭제한다.

매개변수
pszIp클라이언트 IP 주소
iPort클라이언트 포트 번호
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpClientMap::Delete ( const char *  pszIp,
int  iPort 
)

TCP 연결 정보를 삭제한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
반환값
true 를 리턴한다.
bool CTcpSessionList::Delete ( int  iIndex)

TCP 세션 정보를 삭제한다.

매개변수
iIndexTCP 세션 인덱스
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CTcpSessionList::DeleteAll ( )

모든 TCP 세션 정보를 삭제한다.

void CTcpThreadList::DeleteNoUseThread ( )

TCP 클라이언트와 연결되지 않은 쓰레드를 삭제한다.

bool CTcpClientMap::DeleteSendPacketList ( const char *  pszIp,
int  iPort,
SEND_PACKET_LIST &  clsList 
)

TCP 연결 후, 전송할 패킷 리스트를 삭제한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
clsListTCP 연결 후, 전송할 패킷 리스트 저장 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpThreadList::DeleteThread ( int  iThreadIndex)

쓰레드 정보를 삭제한다.

매개변수
iThreadIndex쓰레드 인덱스
반환값
성공하면 true 를 리턴하고 성공하면 false 를 리턴한다.
void CTcpSessionList::DeleteTimeout ( int  iTimeout,
int  iNoPacketTimeout,
void(*)(CTcpSessionList *pclsSessionList, int iIndex, void *pclsArg)  BeforeDelete,
void *  pclsArg 
)

TCP 수신 timeout 이 발생한 TCP 세션을 종료시킨다.

매개변수
iTimeoutTCP 수신 timeout 시간 (초단위)
iNoPacketTimeoutTCP 연결 후, 패킷이 수신되지 않은 경우의 timeout 시간 (초단위)
BeforeDelete삭제하기 전에 호출하는 callback 함수
pclsArg응용 프로그램 변수
void CTcpThreadList::Destroy ( )

쓰레드 리스트를 종료한다.

int CTcpSessionMap::GetCount ( )

세션 개수를 리턴한다.

반환값
세션 개수를 리턴한다.
void CTcpThreadList::GetString ( CMonitorString strBuf)

쓰레드 정보를 하나의 문자열에 저장한다.

매개변수
strBuf쓰레드 정보를 저장할 문자열 변수
virtual bool ITcpStackCallBack::InComingConnected ( CTcpSessionInfo pclsSessionInfo)
pure virtual

TCP 클라이언트가 연결 이벤트 핸들러

매개변수
pclsSessionInfo세션 정보
반환값
TCP 클라이언트 연결을 허용하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

CHttpStack에서 구현되었습니다.

bool CTcpSessionList::Init ( int  iThreadIndex,
int  iPollFdMax 
)

TCP 세션 정보를 초기화시킨다.

매개변수
iThreadIndexthread index
iPollFdMaxTCP 세션 개수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpSessionMap::Insert ( const char *  pszIp,
int  iPort,
CTcpSessionInfo pclsSessionInfo 
)

TCP 세션 정보를 저장한다.

매개변수
pszIp클라이언트 IP 주소
iPort클라이언트 포트 번호
pclsSessionInfoTCP 세션 정보
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpClientMap::Insert ( const char *  pszIp,
int  iPort,
int  iThreadIndex,
int  iSessionIndex 
)

TCP 연결을 저장한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
iThreadIndexTCP 쓰레드 번호
iSessionIndexTCP 세션 번호 ( TCP 쓰레드 내의 세션 번호 )
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSessionList::Insert ( Socket  hSocket)

TCP 소켓을 추가한다.

매개변수
hSocketTCP 소켓
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
int CTcpSessionList::Insert ( CTcpComm clsTcpComm)

TCP 세션 정보를 추가한다.

매개변수
clsTcpCommTCP 세션 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
virtual bool ITcpStackCallBack::IsSendAll ( CTcpSessionInfo pclsSessionInfo)
inlinevirtual

SendAll 로 전송해도 되는 세션인지 검사한다.

매개변수
pclsSessionInfo세션 정보
반환값
SendAll 로 전송해도 되는 세션이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool IsTcpListenThreadRun ( )

TCP listen 쓰레드가 실행중인가?

반환값
TCP listen 쓰레드가 실행중이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void CTcpSessionInfo::Log ( const char *  pszPacket,
int  iPacketLen,
bool  bSend 
)

TCP 전송/수신에 대한 로그를 출력한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
bSend전송 여부
bool CTcpStackSetup::Parse ( CXmlElement clsXml)

XML element 에서 TCP stack 설정 사항을 가져온다.

매개변수
clsXmlXML element
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
int CTcpThreadList::RecvCommand ( Socket  hSocket,
char *  pszData,
int  iDataSize 
)
static

명령을 수신한다.

매개변수
hSocketpipe 수신 핸들
pszData명령 저장 변수
iDataSizepszData 변수 크기
반환값
수신한 길이를 리턴한다.
virtual bool ITcpStackCallBack::RecvPacket ( char *  pszPacket,
int  iPacketLen,
CTcpSessionInfo pclsSessionInfo 
)
pure virtual

TCP 패킷 수신 이벤트 핸들러

매개변수
pszPacket수신 패킷
iPacketLen수신 패킷 길이
pclsSessionInfo세션 정보
반환값
TCP 세션을 유지하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

CHttpStack에서 구현되었습니다.

bool CTcpSessionMap::Send ( const char *  pszIp,
int  iPort,
const char *  pszPacket,
int  iPacketLen 
)

특정 세션에 TCP 패킷을 전송한다.

매개변수
pszIpIP 주소
iPort포트 번호
pszPacket패킷
iPacketLen패킷 길이
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpSessionMap::Send ( int  iThreadIndex,
const char *  pszPacket,
int  iPacketLen 
)

특정 세션에 TCP 패킷을 전송한다.

매개변수
iThreadIndexTCP 쓰레드 번호
pszPacket패킷
iPacketLen패킷 길이
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpStack::Send ( const char *  pszIp,
int  iPort,
const char *  pszPacket,
int  iPacketLen,
bool  bConnectIfNoSession 
)

특정 세션에 TCP 패킷을 전송한다.

매개변수
pszIpIP 주소
iPort포트 번호
pszPacket패킷
iPacketLen패킷 길이
bConnectIfNoSessionTCP 세션이 존재하지 않으면 새로운 TCP 세션을 연결한 후, 패킷을 전송하는가?
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpStack::Send ( int  iThreadIndex,
int  iSessionIndex,
const char *  pszPacket,
int  iPacketLen 
)

특정 세션에 TCP 패킷을 전송한다.

매개변수
iThreadIndexTCP 쓰레드 번호
iSessionIndexTCP 세션 번호
pszPacket패킷
iPacketLen패킷 길이
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSessionInfo::Send ( const char *  pszPacket,
int  iPacketLen 
)

TCP 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpClientMap::Send ( const char *  pszIp,
int  iPort,
const char *  pszPacket,
int  iPacketLen,
bool  bConnectIfNoSession 
)

TCP 서버에 연결하여서 TCP 패킷을 전송한다.

이미 연결된 TCP 서버에는 TCP 패킷만 전송한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
pszPacket패킷
iPacketLen패킷 길이
bConnectIfNoSessionTCP 세션이 존재하지 않으면 새로운 TCP 세션을 연결한 후, 패킷을 전송하는가?
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpSessionList::Send ( int  iIndex,
const char *  pszPacket,
int  iPacketLen 
)

특정 세션에 패킷을 전송한다.

매개변수
iIndex세션 인덱스
pszPacket패킷
iPacketLen패킷 길이
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpThreadList::Send ( int  iThreadIndex,
int  iSessionIndex,
const char *  pszPacket,
int  iPacketLen 
)

특정 세션에 TCP 패킷을 전송한다.

매개변수
iThreadIndexTCP 쓰레드 번호
iSessionIndexTCP 세션 번호
pszPacket패킷
iPacketLen패킷 길이
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSessionMap::SendAll ( const char *  pszPacket,
int  iPacketLen,
ITcpStackCallBack pclsCallBack 
)

모든 세션에 TCP 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
pclsCallBack세션별로 전송 유무를 결정하는 callback 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpStack::SendAll ( const char *  pszPacket,
int  iPacketLen 
)

모든 세션에 TCP 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSessionList::SendAll ( const char *  pszPacket,
int  iPacketLen,
ITcpStackCallBack pclsCallBack 
)

모든 세션에 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
pclsCallBack세션별로 전송 유무를 결정하는 callback 객체
반환값
true 를 리턴한다.
bool CTcpThreadList::SendAll ( const char *  pszPacket,
int  iPacketLen,
ITcpStackCallBack pclsCallBack 
)

모든 세션에 TCP 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
pclsCallBack세션별로 전송 유무를 결정하는 callback 객체
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSessionMap::SendAllExcept ( const char *  pszPacket,
int  iPacketLen,
ITcpStackCallBack pclsCallBack,
int  iThreadIndex,
int  iSessionIndex 
)

특정 세션을 제외한 모든 세션에 TCP 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
pclsCallBack세션별로 전송 유무를 결정하는 callback 객체
iThreadIndex전송하지 않을 세션의 쓰레드 인덱스
iSessionIndex전송하지 않을 세션 인덱스
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpStack::SendAllExcept ( const char *  pszPacket,
int  iPacketLen,
int  iThreadIndex,
int  iSessionIndex 
)

특정 세션을 제외한 모든 세션에 TCP 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
iThreadIndex전송하지 않을 세션의 쓰레드 인덱스
iSessionIndex전송하지 않을 세션 인덱스
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSessionList::SendAllExcept ( const char *  pszPacket,
int  iPacketLen,
ITcpStackCallBack pclsCallBack,
int  iThreadIndex,
int  iSessionIndex 
)

모든 세션에 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
pclsCallBack세션별로 전송 유무를 결정하는 callback 객체
iThreadIndex전송하지 않을 세션의 쓰레드 인덱스
iSessionIndex전송하지 않을 세션 인덱스
반환값
true 를 리턴한다.
bool CTcpThreadList::SendAllExcept ( const char *  pszPacket,
int  iPacketLen,
ITcpStackCallBack pclsCallBack,
int  iThreadIndex,
int  iSessionIndex 
)

모든 세션에 TCP 패킷을 전송한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
pclsCallBack세션별로 전송 유무를 결정하는 callback 객체
iThreadIndex전송하지 않을 세션의 쓰레드 인덱스
iSessionIndex전송하지 않을 세션 인덱스
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpThreadList::SendCommand ( const char *  pszData,
int  iDataLen 
)

쓰레드에 명령을 전송한다.

매개변수
pszData명령
iDataLenpszData 길이
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpThreadList::SendCommand ( const char *  pszData,
int  iDataLen,
int  iThreadIndex 
)

지정된 쓰레드 번호의 쓰레드로 명령을 전송한다.

매개변수
pszData명령
iDataLenpszData 길이
iThreadIndex쓰레드 인덱스
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void CTcpThreadList::SendCommandAll ( const char *  pszData,
int  iDataLen 
)

모든 쓰레드에 명령을 전달한다.

매개변수
pszData명령
iDataLenpszData 길이
virtual void ITcpStackCallBack::SessionClosed ( CTcpSessionInfo pclsSessionInfo)
pure virtual

TCP 클라이언트 세션이 종료 이벤트 핸들러

매개변수
pclsSessionInfo세션 정보

CHttpStack에서 구현되었습니다.

bool CTcpClientMap::SetConnected ( const char *  pszIp,
int  iPort,
int  iThreadIndex,
int  iSessionIndex 
)

TCP 연결됨으로 설정한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
iThreadIndexTCP 쓰레드 번호
iSessionIndexTCP 세션 번호 ( TCP 쓰레드 내의 세션 번호 )
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool SetupFileLog ( CFileLog clsFileLog,
CXmlElement clsElement 
)

Xml element 의 설정값들로 CFileLog 를 시작한다.

매개변수
clsFileLogCFileLog 객체
clsElementXml elment
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool SSLAccept ( Socket  iFd,
SSL **  ppsttSsl,
bool  bCheckClientCert,
int  iVerifyDepth,
int  iAcceptTimeout 
)

클라이언트 SSL 접속 요청을 허용한다.

매개변수
iFd클라이언트 TCP 소켓 핸들
ppsttSslSSL 구조체
bCheckClientCert클라이언트 인증서를 확인할 것인가?
iVerifyDepththe maximum depth for the certificate chain verification that shall be allowed for ssl
iAcceptTimeoutSSL 접속 요청 처리 최대 시간 ( ms 단위 )
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool SSLClientStart ( )

SSL 클라이언트 라이브러리를 시작한다.

반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool SSLClientStop ( )

SSL 클라이언트 라이브러리를 종료한다.

반환값
true 를 리턴한다.
bool SSLClose ( SSL *  ssl)

SSL 세션을 종료한다.

매개변수
sslSSL 구조체
반환값
true 를 리턴한다.
void SSLFinal ( )

프로세스가 종료될 때에 최종적으로 실행하여서 openssl 메모리 누수를 출력하지 않는다.

void SSLPrintLogClientCipherList ( )

SSL 클라이언트에서 사용되는 cipher list 를 로그로 출력한다.

void SSLPrintLogServerCipherList ( )

SSL 서버에서 사용되는 cipher list 를 로그로 출력한다.

int SSLRecv ( SSL *  ssl,
char *  szBuf,
int  iBufLen 
)

SSL 프로토콜로 수신된 패킷을 읽는다.

매개변수
sslSSL 구조체
szBuf수신 패킷 저장 버퍼
iBufLen수신 패킷 저장 버퍼 크기
반환값
성공하면 양수를 리턴하고 실패하면 0 또는 음수를 리턴한다.
int SSLSend ( SSL *  ssl,
const char *  szBuf,
int  iBufLen 
)

SSL 프로토콜로 패킷을 전송한다.

매개변수
sslSSL 구조체
szBuf전송 패킷
iBufLen전송 패킷 크기
반환값
전송 패킷 크기를 리턴한다.
bool SSLServerStart ( const char *  szCertFile)

SSL 서버 라이브러리를 시작한다.

매개변수
szCertFile서버 인증서 및 개인키 파일
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool SSLServerStop ( )

SSL 서버 라이브러리를 종료한다.

반환값
true 를 리턴한다.
bool CTcpStack::Start ( CTcpStackSetup pclsSetup,
ITcpStackCallBack pclsCallBack 
)

TCP stack 을 시작한다.

매개변수
pclsSetupTCP stack 설정
pclsCallBackTCP stack callback
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool StartTcpClientThread ( const char *  pszIp,
int  iPort,
CTcpStack pclsStack 
)

TCP 연결 Thread 를 시작한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
pclsStackTCP stack
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpStack::Stop ( )

TCP stack 을 중지한다.

반환값
true 를 리턴한다.
THREAD_API TcpClientThread ( LPVOID  lpParameter)

TCP 연결 Thread.

매개변수
lpParameterCTcpClientArg 객체
반환값
0 을 리턴한다.
THREAD_API TcpListenThread ( LPVOID  lpParameter)

TCP 서버 쓰레드

매개변수
lpParameterCTcpStack 객체
반환값
0 을 리턴한다.
THREAD_API TcpNoPipeThread ( LPVOID  lpParameter)

pipe 를 사용하지 않는 TCP 세션 쓰레드 함수 - m_bUseThreadPipe 가 false 일 때에 사용된다.

매개변수
lpParameterCThreadListEntry 객체의 포인터
반환값
0 을 리턴한다.
THREAD_API TcpPipeThread ( LPVOID  lpParameter)

TCP 세션을 위한 쓰레드 함수

매개변수
lpParameterCThreadListEntry 객체의 포인터
반환값
0 을 리턴한다.