手伝っていただけませんか?gen_tcp send 関数に関連する問題があります。私は、amf オブジェクトにデコードされた約 10 ~ 15 個のアイテムのいくつかのタプルを、erlang サーバーからフラッシュ クライアントに送信しようとしました。
case get_tcp:send(Socket, Msg) of
ok -> io:format("sent~n");
{erorr, Err} -> io:format("~w~n", [Err])
end
エラーはありませんが、フラッシュ クライアントは約 8 ~ 11 項目のデータ全体を受信しません。ソケットのオプションは [binary, {active, true}, {reuseaddr, true}] です。クライアントを使用しているネットワークを確認しました。送信されたパケットは、大小の 2 つのフラグメントにフラグメント化されていました。大きなものはパケットの最初のフラグメントで、小さなものは次のフラグメントです。ビッグの量は送信されたメッセージの量と同じですが、スモールははるかに少なく、フラッシュ クライアントによって受信されたメッセージの数とほぼ同じです。
データを高速で送信した場合にのみ再現しますが、ゆっくりと送信すると問題ないようです。なぜそれが起こるのか誰か知っていますか?とても役に立ちます。