私が抱えている問題は、どういうわけか非常に具体的です。
リンクを介して C でスライディング ウィンドウ プロトコルを実装する必要があります。私の senter.c ファイルは、速度、遅延、および失われたファイルまたは破損したファイルの割合をパラメーターとして受け取ります。データはリンク経由で送信されます。これは学校の課題なので、リンクの実装の詳細はわかりませんが、送信者と受信者はポートと IP を使用してリンクを開始する必要があるため、ソケットを使用していると思います。とにかく、タイムアウトと制御フローに使用するために、接続パラメーターを受信者に送信しようとしています。以下を使用して、速度と遅延を表す 2 つの int を送信するデータ フレーム ペイロードを作成します。
int s = (int)(*speed - '0');
int d = (int)(*delay - '0');
sprintf(t.payload,"%d%d",s,d);
送信者ファイルの s 変数と d 変数を出力すると、結果は 1,1 になり、これは正しいです。その後、結果のペイロアをレシーバーに送信します。ここで、ペイロード [0] は速度と呼ばれる別の int 変数に割り当てられ、ペイロード [1] は遅延と呼ばれる別の int に割り当てられます。問題は、ここでは値が 49 であり、本来あるべき値ではないことです。それらに atoi() 関数を使用してみましたが、速度が 11 に変換されている間に遅延が 1 に正常に変換され、意味がありません。私はそれを機能させるためにさまざまな方法を試しましたが、それらを文字として送信し、受信側で変換しても役に立ちませんでした。
何か案は?
PS: 巨大な投稿と私の英語の間違いで申し訳ありません!