0

UDP Adob​​e air を使用して大きなファイルを CPP に送信しようとしています。大きなファイルの転送中に、いくつかのパケットが欠落しています。不足しているパケットのデータを取得するにはどうすればよいですか? まず、tcp を使用してクライアント (air) とサーバー (cpp) を接続しています。接続確立後、ファイル転送を開始しています。tcp を使用して欠落しているファイルのデータを取得し、欠落しているパケットを tcp を使用して再送信することを計画しています。転送中に欠落しているパケットを知る方法を教えてください。ありがとうございました。

4

2 に答える 2

1

何が起こっているのか明確にしていただけますか?あなたはUDP経由でファイルを送信しているが、TCPでサーバーに接続していると言います.2つのプロトコルは単一の接続では相互に排他的です。

UDP はパケット損失を検出するためのメカニズムを提供しないため (これが TCP の目的です)、デフォルトでは、パケットが損失したかどうかを判断することはできません。TCP はパケットの送信/再送信を管理するため、ファイルの送信には TCP を使用する必要があります。

Air のServerSocketドキュメント ( http://help.adobe.com/en_US/air/reference/html/flash/net/ServerSocket.html ) に記載されているとおり:

[TCP 経由で送信された] すべてのパケットは、(妥当な範囲内で) 到着することが保証されます。失われたパケットは再送信されます。一般に、TCP プロトコルは、UDP プロトコルよりも利用可能なネットワーク帯域幅を適切に管理します。ソケット通信を必要とするほとんどの AIR アプリケーションは、DatagramSocket クラス [UDP] ではなく、ServerSocket および Socket クラス [TCP] を使用する必要があります。

Air ネットワーク クラスの詳細については、次のページを参照して
ください。

于 2010-05-29T15:30:47.950 に答える
0

私の推測では、パケットが失われたときに再送信を行うため、tcp は遅くなります。それがおそらく遅い理由です。しかし一方で、どのパケットが失われたかを確認し、それらをudpで再送信するのにも時間がかかります...

私はUDPの代わりにTCPを選びます

Sly が言うように、udp はここで使用するツールが間違っているようです

于 2010-06-24T13:25:43.627 に答える