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; }
bool MNetLink::SetAddress(char* pszIP, int nPort) { return MakeSockAddr(pszIP, nPort, &m_Address); }