0

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

这是我正在使用的代码:

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

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

dostuff(sock);

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

4

1 回答 1

2

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

// do this before returning from main
pthread_join(threadID[i], NULL);
于 2012-12-01T01:31:42.273 回答