Example #1
0
SOCKET MakeConnection(UINT ipaddr, short port)
{
  SOCKET sd = INVALID_SOCKET;
  struct sockaddr sockAddr;
  
  struct in_addr inaddr;
  inaddr.s_addr = ipaddr;
  char* p = inet_ntoa(inaddr);
  if (p == NULL)
    return INVALID_SOCKET;
  string host = p;

  if (ipaddr == 0 || host == "127.0.0.1")
  { // special case to ease local testing
    host = "localhost";
  }

  if (MakeSockAddr(host.c_str(), port, &sockAddr))
  {    
    sd = socket(AF_INET, SOCK_STREAM, 0);
    if (sd != INVALID_SOCKET)
    {
      int rc = connect(sd, &sockAddr, sizeof(sockAddr));
      if (rc >= 0)
      { 
          if (Sys_IsSSLEnabled())
              rc = ssl_connect(sd);
      }
      else
      {
        printf("Connect fails: %i\n", Sys_GetLastError());
      }
      
      if (rc < 0)
      {
        Sys_LogError("connect fails");
        closesocket(sd);
        sd = INVALID_SOCKET;
      }
    }
  }

  return sd;
}  
Example #2
0
bool MNetLink::SetAddress(char* pszIP, int nPort)
{
	return MakeSockAddr(pszIP, nPort, &m_Address);
}