掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
転送エラー (ID:58533)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すみません。プログラム的にまちがっているところがあったので、うまくできなかっただけでした(デバッグ)。 で、別のパソコンで実験してみましたところ、2.5Mぐらいのファイルを送受信しているときに受信側でfwriteの戻り値が本来は524288が正常な値なのですが、521632になったりすることもありましたが、そのときrresをみてみると、同じ値である521632になっていたので、エラー処理は正常に動作しているとおもわれます。 ちなみに送信側は、エラー処理のwhileの中の res=send(c,&data[sres],fres-sres,0);をブレイクポイントにしていました。 ですが、こっちでとまることはなかったので、一度もこのwhileの中は実行されていない、つまり読み込んだ値と同じだけ送れていました。 次に、20Mぐらいのファイルを送受信すると、さっきと同じように524288ではない値がfwriteの戻り値としてでていましたが、rresと同じ値だったので、正常にうごいていたとおもわれます。 それから、20回ぐらい受信側のブレイクポイントでとまって、次に続行ボタンをおすと、受信側でも送信側でもブレイクポイントでとまらなくなりました。(ブレイクポイントの部分を実行しなくなりました) よって、受信側のwhileを抜けたのだと考えられます。しかし、whileをぬけたらすぐにfileという文字を表示さすようにしていたのですが、fileという文字が表示されていなかったのでどうなってしまったのか・・・? そして、この状態で何秒かまっていると、今度は送信側のほうのブレイクポイントでとまりました。 みてみると、sendの戻り値が-1になっていました。 なぜ途中でwhileからぬけてしまったのでしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.