客户端在执行时终止(pthread)

时间:2012-12-01 01:26:03

标签: c sockets pthreads

我有套接字编程问题。我正在运行服务器,然后它等待客户端。一旦我运行客户端,没有任何反应,它只是终止并带回提示。基本上它编译好,但它根本不运行。它一运行就会终止。这只发生在我在客户端代码中使用线程时。

这是我正在使用的代码:

if(pthread_create(&threadID[i++], NULL, (void *)dostuff, (void *)(intptr_t)sock) != 0)  
        {
        perror("Thread create error");
        }

另一方面,如果我输入

dostuff(sock);

客户端程序确实执行。我需要线程,因为我需要实现I / O多路复用。你能告诉我如何在使用线程时阻止客户端终止吗?

1 个答案:

答案 0 :(得分:2)

在退出程序之前,您需要等待线程完成,例如使用pthread_join

// do this before returning from main
pthread_join(threadID[i], NULL);