開発環境VS2005 VC++を使用しています。
現在CAsyncSocketを継承したクラスで通信関係の処理をやっています。
連続送信処理を行いたいのです。送信後にAckを受けたら次の送信を行うとかしたいのですが、
Ackの受信確認なんてできませんか?
もし受信確認が出来ない場合はSendが正常に終了したらAckを受けれたと考えていいのでしょうか?
ご教授お願いします。
まず、TCP/IPは送信データの内容が破壊されずに送信先に
到着することを保障しています。従って、本当にAckが必要か
どうか検討してください。到着データに何らかの加工をしてから、
次のデータの送信要請する場合などのみに必要となるかもしれません。
単にデータの正常性の確認の場合は不要です(全て正常に到着します)。
次にサーバークライアント共、ソケットに対してsend/recvができます。
つまりAckがほしけりゃsendすりゃいいじゃん。てやつです。
この場合のAckとは信号ではなく、意味のある送信データ列をやり
取りすることを意味します。
> もし受信確認が出来ない場合はSendが正常に終了したらAckを受けれたと考えていいのでしょうか?
いいえ、正常に送信が完了したのであって、受信が完了したとは
いえません。ただし、微妙ですが、一般には相手のNICにデータは
到達はしたといっても良いと思いますが、相手がrecvした
かどうかは不明です。
ありがとうございます。
ソケットに対してsendをすればAckを受けるというのは、
受けた側が、データとしてAckを送信すればいいということでしょうか?
以下、ありがとうございます。なるほどです!
> いいえ、正常に送信が完了したのであって、受信が完了したとは
> いえません。ただし、微妙ですが、一般には相手のNICにデータは
> 到達はしたといっても良いと思いますが、相手がrecvした
> かどうかは不明です。
ツイート | ![]() |