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



我有一个套接字编程问题。我正在运行服务器,然后它等待客户端。但是,一旦我运行客户端,什么也没发生,它只是终止并带回提示。基本上它可以编译正常,但它根本不运行。一旦我运行它,它就会终止。仅当我在客户端代码中使用线程时,才会发生这种情况。

这是我正在使用的代码:

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

另一方面,如果我简单地输入

dostuff(sock);

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

您需要等待线程完成才能退出程序,例如使用 pthread_join

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

最新更新