1

私はCoronaSDKを使用して、luasocketを必要とするシンプルなアプリを作成しています。Corona SDKは、非同期httpreqを実行するためのluasocketをサポートします。

しかし、luasocketのUDPを使用したいと思います。luasocketからのUDPreceive()メソッドは、メッセージを受信するまでブロックされています。

CoronaSDKはLuaLanesをサポートしていません。したがって、別のスレッドでudpメッセージを聞くことはまったく不可能です。

だから私は、関数(この場合はudp.receive())が応答するのに時間がかかりすぎるかどうかを検出してキャンセルするためのメソッド/トリック/回避策がluaにあるかどうかを考えていますか?

前もって感謝します

4

2 に答える 2

3

はい..コルーチンとイベント..http : //www.lua.org/pil/9.4.html

100ミリ秒ごとに関数を呼び出すというタイマーイベントを発生させます。その関数でコルーチンを再開します。

コルーチンで。着信データをループで読み取り、完了していない場合は譲歩することができます。

例はこれをよく説明しています。

頑張って..F。

于 2011-06-29T06:33:55.333 に答える
2

updタイムアウトを設定しましたか?

ページの下部にあるhttp://w3.impa.br/~diego/software/luasocket/udp.htmlを参照してください。

于 2011-06-22T09:18:07.290 に答える