注意:原发帖人已要求关闭问题;看评论。
在触发“按任意键继续”(基本上是 CIN.ignore())时 C 控制台程序退出后,其他 CMD 窗口停止响应控制台输入。
当程序从资源管理器窗口而不是 CMD 执行时,就会发生这种情况。当程序在 CMD 中启动时,它会很好地退出,并且其他控制台窗口不会受到影响。
尝试 cin.clear 和 getline 没有运气。
有任何想法吗?
pthread_t sthread;
void *ret;
start=true;
if (pthread_create(&sthread, NULL, &sbsb, (void*)listeningSocket)){
cout << "[ERROR] unable to create thread for Server"<< endl;
if(closesocket(listeningSocket))
printf("[ERROR] CLOSE SOCKET FAILED WITH ERROR:%d\n",WSAGetLastError());
WSACleanup();
return -1;
}
cout<<"[SOCKET] Started listening on "<<port<<endl;
cin.ignore();
start=false;
cout<<"[END] Exiting"<<endl;
if(closesocket(listeningSocket))
printf("[ERROR] CLOSE SOCKET FAILED WITH ERROR:%d\n",WSAGetLastError());
pthread_join(sthread,&ret);
while (running_threads > 0)usleep(1);
WSACleanup();
cout<<"[END] Bye SB"<<endl;
return 0;