私は単一のサーバークライアントプログラムを作成しましたが、質問したいのですが、32ビットと64ビットのオペレーティングシステム間でrecv()関数の動作に違いはありますか。
サーバーとクライアントの両方を64ビットラップトップで実行していて、すべてが正常に機能しているため、これを求めています。私はこの方法でrecv()を呼び出します。while((tmp = recv(client_sock,rec_msg,256,0))>0)
たとえば、クライアントから送信する文字列が3つある場合、サーバー部分でwhileを3回入力し、正しい結果を出力します。
32ビットのDebianマシンでまったく同じプログラムを実行すると、何らかの理由で、たとえばクライアントから3つの文字列を送信すると、サーバー部分のwhileループに1回だけ入り、3つの文字列を1つとして受信するようです。
printステートメントを使用したところ、whileループに1回入り、すべてのバッファーを受信することがわかりました。ただし、クライアント部分では、whileループが予想どおりに3回入力され、3つの文字列が3つの異なる時間に送信されます。64ビットで正常に動作し、32ビットで動作しない理由を論理的に見つけることができません。そのため、この質問をしています。
あなたの時間とあなたの助けを前もって感謝します。