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 に答える