私は、TCPソケットを介してFlex/Airフロントエンドに画像を送るC++アプリケーションを持っています。このデータ転送はすべて同じホストで行われるため、ソケットはローカルホストサーバーに接続します。C++からFlex/Airにデータをソケットより速く転送する方法はありますか?
問題は、Flex/Airがソケットから画像全体を読み取るのに本当に時間がかかることです。サーバーはイメージを非常に速く送信しますが、Flex/Airはこのイメージを小さな部分で読み取ります。イメージ全体には約300MBがあり、Flex/AIRは各反復ごとに約1KBしか読み込みません。したがって、flexはソケットデータコールバックを呼び出し続け、アプリケーションの速度低下を引き起こしています。
フレックスで使用する同期ソケット、またはすべてのデータを一度に読み取ることができるソケットがありますか?ソケットが最善の選択肢でない場合は、他に高速なオプションがありますか?
マイソケットクラスは、次のようになります。
public class ClientSocket extends Socket
{
public function ClientSocket(host:String, port:int)
{
super();
addListeners();
...
this.endian = Endian.LITTLE_ENDIAN;
}
private function addListeners():void
{
...
addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
...
}
private function onSocketData(event:ProgressEvent):void
{
try
{
...
var serverMessage:ByteArray = new ByteArray;
readBytes(serverMessage);
...
}
catch(error:Error)
{
//Error handling
}
}
}
As3には同期ソケットがありません。データを受け取るソースコードを表示できますか? –
いくつかのコードを追加しました。 –