-2
これはreadとwriteの関数(@alkで提供)を使用しています。
uint16_t data_size;
を正しく送信する方法がわかりません。ここで
は、一般的な例バッファを送信するために、私の実際のコードです:nバイトの書き込みとnバイトの読み取り:uint16_tを使用して読み取るバイト数を送信
uint16_t data_size;
int retry_on_interrupt = 0;
char buffer[] = "Hello world!";
data_size = (uint16_t) sizeof(buffer);
/* sending data_size */
writen(socket, data_size, 2, retry_on_interrupt);
/* sending buffer */
writen(socket, buffer, sizeof(buffer);
そして、ここでは一般的な例バッファ受け取るために私の実際のコードです:
/* receiving data_size */
readn(socket, &data_size, 2);
/* receiving buffer */
readn(socket, buffer, data_size);
しかし、これは動作していないが、私があるためだと思いますwriten
にはconst char *
が必要ですが、代わりにuint16_t
を使用しています。
これらの呼び出しはどのようにする必要がありますか?ありがとう。
質問が更新されました。 – UrbiJr
Ok今、すべてのことが明らかです。問題はsendfile呼び出しで発生しました。私は 'offset'をきれいにして、' 0'に再初期化しなければなりませんでした。この質問とは何の関係もありませんでしたが、とにかくそれを伝えたいと思いました! – UrbiJr