int main() { printf("Starting up multi-threaded TCP server \r\n"); FILE *fileStream_SQL; char fileText_SQL [240]; fileStream_SQL = fopen ("PATH_sql.txt", "r"); fgets (fileText_SQL, 240, fileStream_SQL); CONN_STR = fileText_SQL; CONN_STR_READ_ONLY =ReplaceString(CONN_STR,"Uid=sa;","Uid=alex_ro;"); fileText_SQL[0] ='\0'; fclose(fileStream_SQL); // our masterSocket(socket that listens for connections) SOCKET sock; // for our thread //DWORD thread; WSADATA wsaData; sockaddr_in server; // start winsock int ret = WSAStartup(0x101,&wsaData); // use highest version of winsock avalible if(ret != 0) { return 0; } // fill in winsock struct ... server.sin_family=AF_INET; server.sin_addr.s_addr=INADDR_ANY; server.sin_port=htons(23); // listen on telnet port 23 // create our socket sock=socket(AF_INET,SOCK_STREAM,0); if(sock == INVALID_SOCKET) { return 0; } // bind our socket to a port(port 23) if( bind(sock,(sockaddr*)&server,sizeof(server)) !=0 ) { return 0; } // listen for a connection if(listen(sock,5) != 0) { return 0; } printf("TCP server sin_port 23 \r\n"); // socket that we snedzrecv data on SOCKET client; sockaddr_in from; int fromlen = sizeof(from); std::thread th_overCPU(overCPU); th_overCPU.detach(); // loop forever while ((client = accept(sock, (struct sockaddr*)&from,&fromlen))!= INVALID_SOCKET) { Sleep(250); std::thread th_client(receive_cmds,(LPVOID)client); th_client.detach(); } // shutdown winsock closesocket(sock); WSACleanup(); // exit return 0; }