我有套接字编程问题。我正在运行服务器,然后它等待客户端。一旦我运行客户端,没有任何反应,它只是终止并带回提示。基本上它编译好,但它根本不运行。它一运行就会终止。这只发生在我在客户端代码中使用线程时。
这是我正在使用的代码:
if(pthread_create(&threadID[i++], NULL, (void *)dostuff, (void *)(intptr_t)sock) != 0)
{
perror("Thread create error");
}
另一方面,如果我输入
dostuff(sock);
客户端程序确实执行。我需要线程,因为我需要实现I / O多路复用。你能告诉我如何在使用线程时阻止客户端终止吗?
答案 0 :(得分:2)
在退出程序之前,您需要等待线程完成,例如使用pthread_join
// do this before returning from main
pthread_join(threadID[i], NULL);