server.cpp には、client.cpp に送信する 2 つの int フィールドがあります。こんな感じで送っています。
if ((bytecount = send(*csock, portstring1, strlen(portstring1), 0)) == -1) {
fprintf(stderr, "Error sending data %d\n", errno);
goto FINISH;
}
sprintf(portstring2, "%d", ncount);
if ((bytecount = send(*csock, portstring2, strlen(portstring2), 0)) == -1) {
fprintf(stderr, "Error sending data %d\n", errno);
goto FINISH;
}
そして受信側で私は使用します:
if((bytecount = recv(hsock, buffer, buffer_len, 0))== -1){
fprintf(stderr, "Error receiving data %d\n", errno);
goto FINISH;
}
printf("Positive counts are :");
printf(" %s \n",buffer);
if((bytecount = recv(hsock, buffer2, buffer_len, 0))== -1){
fprintf(stderr, "Error receiving data %d\n", errno);
goto FINISH;
}
printf("Negative count is :");
printf(" %s \n",buffer2);
しかし問題は、最初の rec() 関数がサーバーから送信された両方の値をキャッチし、2 番目の受信関数に到達しないことです。最初の rec 関数から受信したデータを印刷すると、サーバーから送信された両方の値が表示されます。
配列を使用して両方の値を一緒に送信しようとしましたが、 int 配列を chat * に変換すると頭が痛くなりました。send および rec 関数は char * 値のみを処理するためです。文字列でさえありません。
クライアント側で別々のレベルで両方の値を取得するにはどうすればよいですか?