2016-03-29 11 views
0

単純質問:Lua内でJava関数を実行またはロードする方法はありますか?Luaでjava関数をロード

Luaを使用してサーバーとクライアント間でファイルを転送する電話アプリケーションを作成しようとしています。クライアントがLuaを使用している間、サーバーはJavaを使用します。

これは今のところ何の問題

function UDPClientModule.receiveFile() 
    local data, status 
    local chunks = {} 
    while true do 
     data, status = udp:receive() 
     print("status: ", status) 
     if data ~= nil then 
      table.insert(chunks, data) 
      --the filename is the last chunk to be received 
      if string.match(data, ".jpg") then 
       -- but strangely returns true 
       break 
      end 
     end 
     socket.sleep(0.5) 
    end 
    --combineAndOpenImage(t) 
end 

を提出しない受信Luaの関数です。ただし、サーバーから送信されたチャンクが、このようなクラスにカプセル化されています

public class FileChunk { 
    private List<Data> dataList; 
    //functions below 
} 
public class Data{ 
    private byte[] fileData; 
    // functions and adding file headers below 
} // then UDPServer.java sends bytes of FileChunk 

このため、LUA機能によって受信されたパケットはまた、trueを返しstring.match(data, ".jpg")にもたらされる奇妙です。ですから、luaの代わりにチャンクを受け取って解読するためにjavaファイル(例えばUDPClient.java)を実行したいと思います。

私はサーバーを変更したり、クライアント言語をjavaに移行したりしたくありません。私はこれについてのリソースを見つけていないので、私は助けが必要です。

+0

おそらく....? – warspyking

+0

'ファイル名が最後に受信されるチャンクです'に頼らないでください。最後のチャンクを検出するには、他の方法を使用します。 –

+0

@EgorSkriptunoff注目。しかし問題は、Luaを使ってチャンクをデコードできないことです。代わりにjava helperファイルを実行したいかもしれません。 – Obito

答えて

1

Cのものなどのラッパーライブラリを作成する必要があります。私は方法はわかりませんが、これがあなたに方向感を与えることを願っています。

関連する問題