/* TNgo, 5/22/97, added another variable to this function so that it can be called by IPC_connectModule */ IPC_RETURN_TYPE _IPC_connect (const char *taskName, const char *serverName, BOOLEAN willListen) { const char *serverHost; char *colon = NULL; int i, serverPort; struct timeval wait; /* Added by Bob Goode/Tam Ngo, 5/21/97, for WINSOCK option. */ #ifdef OS2 sock_init(); #elif defined(_WINSOCK_) startWinsock(); #endif /* Winsock DLL loading */ if (ipcVerbosity > IPC_Silent) { printf("NMP IPC Version %d.%d.%d (%s)\n", IPC_VERSION_MAJOR, IPC_VERSION_MINOR, IPC_VERSION_MICRO, IPC_VERSION_DATE); } /* Modified by TNgo, 5/22/97 */ serverHost = ((serverName != NULL && strlen(serverName) > 0) ? serverName : x_ipcServerMachine()); for (i=0; i<MAX_RECONNECT_TRIES; i++) { if (i > 0 && ipcVerbosity > IPC_Silent) printf(" Trying again %s to connect with the central server on %s\n", taskName, serverHost); IPC_initialize(); x_ipcWillListen(willListen); x_ipcConnectModule(taskName, serverHost); if (X_IPC_CONNECTED()) { x_ipcWaitUntilReady(); if (ipcVerbosity > IPC_Silent) { colon = (serverHost ? (char *)index((char *)serverHost, ':') : NULL); serverPort = (colon == NULL ? SERVER_PORT : atoi(colon+1)); X_IPC_MOD_WARNING1("... IPC Connected on port %d\n", serverPort); } return IPC_OK; } else { /* Need to do this, rather than sleep, because of SIGALRM's */ wait.tv_sec = RECONNECT_WAIT; wait.tv_usec = 0; select(0, 0, 0, 0, &wait); } } /* At this point, we've been unable to connect */ RETURN_ERROR(IPC_Not_Connected); }
bool UDP_Socket::InitSocket() { if (Initialized) return true; // we're already initialized! sockaddr_in adr_inet; memset(&adr_inet, 0, sizeof(adr_inet)); adr_inet.sin_family = AF_INET; adr_inet.sin_port = htons((unsigned short) port); adr_inet.sin_addr.s_addr = INADDR_ANY; #if defined(WIN32) // Windows Version int rc = startWinsock(); if(rc != 0) return false; this->socket = ::socket(AF_INET,SOCK_DGRAM,0); if(this->socket == INVALID_SOCKET) return false; if (bind(this->socket, (sockaddr *)&adr_inet, sizeof(adr_inet)) == SOCKET_ERROR) return false; #else // Unix Version this->socket = ::socket(AF_INET, SOCK_DGRAM, 0); if (this->socket == -1) { Out << "Couldn't Get Socket (" << strerror(errno) << ")" << endl; return false; } if (bind(this->socket, (sockaddr *)&adr_inet, sizeof(adr_inet)) == -1) { Out << "Couldn't Bind Socket" << endl; return false; } #endif Initialized = true; return true; }
void iRODSNtAgentInit(int ac, char **av) { iRODSNtServerCheckExecMode(ac, av); iRODSNtSetServerHomeDir(av[0]); if(nIrodsNtMode != IRODS_NT_CONSOLE_MODE) { char *log_fname = getenv("irodsLogFile"); if(log_fname == NULL) return; iRODSNtServerLogFileName = strdup(log_fname); } if (startWinsock() != 0) { fprintf(stderr,"failed to call startWinsock().\n"); exit(0); } }
int main(int argc, char ** argv) { long rc; SOCKET s; SOCKADDR_IN addr; rc = startWinsock(); if(rc!=0) { std::cout << "Fehler: startWinsock, fehler code: %d\n",rc; return 1; } else { std::cout << "Winsock gestartet" << std::endl; } s = socket(AF_INET,SOCK_STREAM,0); if(s== INVALID_SOCKET) { std::cout << "Fehlernummer: " << WSAGetLastError() << std::endl; } else { std::cout << "Socket gestartet" << std::endl; } memset(&addr,0,sizeof(SOCKADDR)); addr.sin_family = AF_INET; addr.sin_port = htons(5050); addr.sin_addr.s_addr = inet_addr("25.193.46.75"); rc = connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR)); if(rc == SOCKET_ERROR) { std::cout << "Error, Verbindung gescheitert!: " << WSAGetLastError() << std::endl; } else { std::cout << "Verbunden mit 10.0.0.6" << std::endl; } system("PAUSE"); return 0; }
rcComm_t * rcConnect( const char *rodsHost, int rodsPort, const char *userName, const char *rodsZone, int reconnFlag, rErrMsg_t *errMsg ) { rcComm_t *conn; #ifdef windows_platform if ( 0 != startWinsock() ) { conn = NULL; /*error -34*/ return conn; } #endif #ifndef windows_platform if ( reconnFlag != RECONN_TIMEOUT && getenv( RECONNECT_ENV ) != NULL ) { reconnFlag = RECONN_TIMEOUT; } #endif conn = _rcConnect( rodsHost, rodsPort, userName, rodsZone, NULL, NULL, errMsg, 0, reconnFlag ); return conn; }
void NetworkManager::init(const HWND hWnd) { startWinsock(); joinMulticastGroup(hWnd); setupPeerListener(hWnd); }
// The fun starts here :-) int main() { // for for :-) int i; // Socket handle long rc; // Overflow buffer char sbuf[SMBUFSIZ]; // send buffer char rbuf[RMBUFSIZ]; // receive buffer // Socket and socket address SOCKET acceptSocket; SOCKET connectedSocket; SOCKADDR_IN addr; // Start winsocks rc=startWinsock(); // Error occured ? if(rc!=0) { printf("Error: startWinsock, error code: %d\n",rc); return 1; } else { printf("Winsock started!\n"); } // creat socket acceptSocket=socket(AF_INET,SOCK_STREAM,0); // Accept connections if(acceptSocket==INVALID_SOCKET) { printf("Error: cannot create socket, error code: %d\n",WSAGetLastError()); return 1; } else { printf("Socket created!\n"); } // ip or dns-name memset(&addr,0,sizeof(SOCKADDR_IN)); // TCP/IP socket addr.sin_family=AF_INET; // Port number 12345 addr.sin_port=htons(PORTNUM); // All clients allowed addr.sin_addr.s_addr=ADDR_ANY; // bind socket to port and check for errors rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN)); if(rc==SOCKET_ERROR) { printf("Error: bind, error code: %d\n",WSAGetLastError()); return 1; } else { printf("Socket listens port 12345\n"); } // Maximum connections is 10. Listen port 12345 // and check for errors rc=listen(acceptSocket,10); if(rc==SOCKET_ERROR) { printf("Error: listen, errorcode: %d\n",WSAGetLastError()); return 1; } else { printf("acceptSocket is in listen mode....\n"); } // Accept and wait for connections connectedSocket=accept(acceptSocket,NULL,NULL); if(connectedSocket==INVALID_SOCKET) { printf("Error: accept, error code: %d\n",WSAGetLastError()); return 1; } else { printf("Accept connection !!!\n"); } // Set the whole buffer to VCHAR memset(sbuf, VCHAR, SMBUFSIZ); // Error code greater than 500 is needed for overflow sbuf[0] = '5'; sbuf[1] = '9'; sbuf[2] = '0'; sbuf[3] = ' '; // Add newline and terminate sbuf[SMBUFSIZ-2] = '\n'; sbuf[SMBUFSIZ-1] = 0x00; // Send response and receive request rc=send(connectedSocket,sbuf,strlen(sbuf),0); rc=recv(connectedSocket,sbuf,256,0); return 0; }
int main(int argc, char **argv) #endif { int expectedMods = 0; #ifdef macintosh doSiouxStuff(); argc = ccommand(&argv); #endif /* Added by Bob Goode/Tam Ngo, 5/21/97, for WINSOCK option. */ #ifdef OS2 sock_init(); #elif defined(_WINSOCK_) startWinsock(); #endif /* Winsock DLL loading */ x_ipcModuleInitialize(); #ifdef VXWORKS /* Do this only after the socket is set up (in case there is an old central lying around that needs killed */ centralTID = taskIdSelf(); #endif globalSInit(); #if !defined(THINK_C) && !defined(macintosh) && !defined(__TURBOC__) && !defined(OS2) && !defined(_WIN95_MSC_) && !defined(WINNT) && !defined(WIN32) (void)signal(SIGINT, abortCentral); (void)signal(SIGBUS, abortCentral); (void)signal(SIGSEGV, abortCentral); (void)signal(SIGPIPE, pipeClosedHnd); (void)signal(SIGTERM, abortCentral); #endif /* !THINK_C && !macintosh */ #ifndef VXWORKS if ((argc > 1) && (STREQ(argv[1], "-v"))) displayVersion(); else if ((argc > 1) && (STREQ(argv[1], "-h"))) { displayOptions(argv[0]); #ifdef macintosh SIOUXSettings.autocloseonquit = FALSE; #endif } else { parseExpectedMods(argc, argv, &expectedMods); parseCommandLineOptions(argc, argv); #else if ((options!= NULL) && (strstr(options, "-v") || strstr(options, "-V"))) { displayVersion(); } else if ((options!= NULL) && (strstr(options, "-h") || strstr(options, "-H"))) { displayOptions("central"); } else { parseOpsFromStr(options, &expectedMods, FALSE); #endif if (expectedMods < 1) expectedMods = 1; if (!serverInitialize(expectedMods)) { X_IPC_ERROR("ERROR: Unable to start server, Is one already running?\n"); } #ifndef VXWORKS /* Register a method for freeing memory in an emergency. */ x_ipcRegisterFreeMemHnd(centralFreeMemory,3); if (GET_S_GLOBAL(listenToStdin)) printPrompt(); #endif #ifndef DEFAULT_OPTIONS fprintf(stderr, "central running...\n"); #endif listenLoop(); } #ifdef _WINSOCK_ WSACleanup(); printf("Socket cleaned up."); #endif /* Unload Winsock DLL */ #ifndef VXWORKS return 1; #endif }
int openSocket() { char debug_message[256]; #if IBM if ( startWinsock() == 0 ) { XPLMDebugString("XData: start winsock failed\n"); return 0; } #endif // create socket //sockfd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); sockfd = socket(PF_INET, SOCK_DGRAM, 0); #if IBM if ( sockfd == INVALID_SOCKET ) { #else if ( sockfd < 0 ) { #endif sprintf(debug_message, "XData: failed - could not open socket! errno: %d\n", GET_ERRNO); XPLMDebugString(debug_message); return 0; } else { XPLMDebugString("XData: socket created\n"); } return 1; } void setAddresses() { char addr_cleartext[200]; // 1.0 Beta 8 : [100] was too small... int i; XPLMDebugString("XData: setting addresses\n"); // receiver address recv_sockaddr.sin_family = AF_INET; recv_sockaddr.sin_port = htons(recv_port); recv_sockaddr.sin_addr.s_addr = INADDR_ANY; memset(&(recv_sockaddr.sin_zero), '\0', 8); sprintf(addr_cleartext, "XData: recv : Port=%d\n", recv_port); XPLMDebugString(addr_cleartext); char tmp[200]; sprintf(tmp, "Setting %d destination addresses.\n", NUM_DEST); XPLMDebugString(tmp); // destination address for ( i=0; i<NUM_DEST; i++ ) { if (dest_enable[i]) { sprintf(tmp, "Configuring destination %d.\n", i); XPLMDebugString(tmp); dest_sockaddr[i].sin_family = AF_INET; dest_sockaddr[i].sin_port = htons(dest_port[i]); dest_sockaddr[i].sin_addr.s_addr = inet_addr(dest_ip[i]); memset(&(dest_sockaddr[i].sin_zero), '\0', 8); sprintf(addr_cleartext, "XData: dest[%d] : IP=%s Port=%d\n", i, dest_ip[i], dest_port[i]); XPLMDebugString(addr_cleartext); } } XPLMDebugString("Finished binding network addresses\n"); }