본문 바로가기

Game Programming/C++

Port OpenCheck

해당 함수는 Local Com에서 사용자가 원하는 Port가 열려있는지 상태를 체크한다.

bool cSessionEx::ServerPortOpneCheck(u_short port)
{

 bool check = false;
 

 PMIB_TCPTABLE pTable = NULL;
 DWORD dwSize = 0;
 if (::GetTcpTable(NULL, &dwSize, TRUE) == ERROR_INSUFFICIENT_BUFFER)
 {
  if (dwSize>0)
  {
   pTable = new MIB_TCPTABLE[dwSize];
   if (::GetTcpTable(pTable, &dwSize, TRUE) !=NO_ERROR)
   {
    //printf("현재 TCP Port는 Close 상태입니다.\n");
    //printf("TCP Port State : Close \n");
    check = false;
   }
  }
  if (pTable == NULL)
  {
   //printf("시스템으로부터 TCP정보를 가져오는데 실패하였습니다.\n");
   //printf("Get System TCP Information fail\n");
   check = false;
   
  }
  else
  {
   for (DWORD nidx = 0; nidx < pTable->dwNumEntries; nidx++)
   {
    u_short localPort = ntohs((u_short)pTable->table[nidx].dwLocalPort);
    if (port == localPort)
    {
     //printf("현재 Port 상태는 Open\n");
     //printf("TCP Port State : Open \n");
     check = true;
     break;

    }
   }
  }
 }

 delete[] pTable;

 return check;


}

'Game Programming > C++' 카테고리의 다른 글

패턴 - 3. 옵저버 패턴(Observer Pattern)  (0) 2016.09.18
cUrl 사용 push  (0) 2014.06.18
Program Rerun  (0) 2014.06.18
Process Search  (0) 2014.06.18
Process Kill  (0) 2014.06.18