// 言わずと知れたWinMain int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ CAppInitializer::Init(hInstance,hPrevInstance,lpCmdLine,nCmdShow); // 必ず書いてね if (!DirCheck()) return 0; CSingleApp sapp; if (sapp.IsValid()) { CAppMainWindow().Run(); // 上で定義したメインのウィンドゥを作成 } return 0; }
int Server(char *Port, char *Directory){ DirCheck(Directory); CloudDirMonitor = (char*)malloc(sizeof(char)* 50); char * CloudDir = (char*)malloc(sizeof(char)* 50); strcpy(CloudDir, Directory); strcpy(CloudDirMonitor, Directory); int Len = strlen(Directory); if (CloudDir[Len - 1] == '\\'){ CloudDir[Len - 1] = '\0'; } if (CloudDirMonitor[Len - 1] == '\\'){ CloudDirMonitor[Len - 1] = '\0'; } strcpy(CloudDir + strlen(CloudDir), "\\cloud\\*.*"); //Directory for checking LWT strcpy(CloudDirMonitor + strlen(CloudDirMonitor), "\\cloud\\"); //Directory for monitoring //cwd = (char*)malloc(sizeof(char)* 261); //char buff[MAX_PATH + 1]; //cwd = getcwd(buff, MAX_PATH + 1); //printf("dir: %s\n", cwd); //strcat(cwd, "\\"); //strcat(cwd, CloudDirMonitor); //printf("dir: %s\n", cwd); //printf("clouddir is %s \n", CloudDir); //printf("clouddirMonitor is %s \n", CloudDirMonitor); //chdir(cwd); // change directory to server\cloud //Socket and buffer initialization SOCKET *Ptr; SOCKET Socket, new_socket; struct sockaddr_in server, client; int recv_len; socklen_t c; c = sizeof(struct sockaddr_in); char *ReceiveBuf; ReceiveBuf = (char *)malloc(sizeof(char)* 1024); //Initialize Winsock #ifdef WIN32 WSADATA wsa; if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0){ printf("Failed to Initialize, Error code : %d", WSAGetLastError()); exit(EXIT_FAILURE); } #endif if ((Socket = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET){ printf("Could not create socket : d%", WSAGetLastError()); } memset(&server, 0, sizeof(struct sockaddr_in)); memset(&client, 0, sizeof(struct sockaddr_in)); server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port = htons(atoi(Port)); if (bind(Socket, (struct sockaddr *)&server, sizeof(server)) == SOCKET_ERROR){ printf("Bind failed with error code : %d", WSAGetLastError()); exit(EXIT_FAILURE); } listen(Socket, 100); //Listening to new TCP connection while (1){ memset(ReceiveBuf, 0, 1024); if ((new_socket = accept(Socket, (struct sockaddr *)&client, &c)) == INVALID_SOCKET){ printf("accept failed with error code: %d\n", WSAGetLastError()); return 0; } else{ Ptr = &new_socket; thrd_t TCPSThread; if (thrd_create(&TCPSThread, TCPChild, (void*)Ptr) == thrd_error){ printf("Create thread is failed\n"); return 0; } } Sleep(2); } closesocket(Socket); #ifdef WIN32 WSACleanup(); #endif return 0; }