0

まだ答えが見つからないという質問があります。特別なデータを送信している、それぞれにwifiを備えた2つのデバイスがあります。このデータをタブレットで同時に表示したい。ネットワーク付きのルーターがあり、タブレットとそのデバイスの両方がこのネットワークに接続されています。

これを解決するには?サーバーソケットを使用する必要がありますか? 十分に説明できたかどうかわかりませんが、そうでない場合はお尋ねください。返信ありがとうございます。

4

2 に答える 2

0

私が働いている会社で同じアプリケーションを実行しています。「デバイス」は、lwIP(軽量IPプロトコル)が実装されたマイクロコントローラーベースのデバイスであり、ポート83をリッスンし、500ミリ秒ごとにタブレットが新しい新しいデータを読み取り、グラフにプロットします。チャームのように機能します。

(チャートをプロットする場合は、AChartEngineを使用しました。プロファイルで、いくつかの有用な情報を使用して質問/回答を確認できます)

以下のコードは、私が行っていることの簡略版です。完全なバージョンには、例外をキャッチした場合に備えて、ソケットを閉じてnullを返そうとするSEVERALが含まれています。 try{ } catch() { }

public static String SendMessage(String message, String ip, int port) {

    // Connect to host ==================================
    Socket socket = new Socket();
    socket.setSoTimeout(TIMEOUT);
    InetSocketAddress addr = new InetSocketAddress(ip, port);
    socket.connect(addr, TIMEOUT);

    // Send Message ======================================
    byte[] outputBuffer = message.getBytes();
    socket.getOutputStream().write(outputBuffer);

    // Zero the input buffer =============================
    for (int i = 0; i < inputBuffer.length; i++) {
        inputBuffer[i] = 0;
    }

    // Read the response ==================================
    int count = 0;
    do {
        count = socket.getInputStream().read(inputBuffer);
    } while (count != -1);

    // Close connection ====================================
    close(socket);

    // Return message ======================================
    return new String(inputBuffer).trim();
}

それがお役に立てば幸いです、幸せなコーディング。

于 2012-08-15T14:18:40.127 に答える
0

1.ソケットが良いでしょう。

発送用 :

Socket s = new Socket();
s.connect(new InetSocketAddress("IP_ADDR",PORT_NO);

OutputStream o = s.getOutputStream();
PrintWriter pw = new PrintWriter(o);
pw.write(msg);   // msg will be the data needed to send

受信用:

Socket s = new Socket();
s.connect(new InetSocketAddress("IP_ADDR",PORT_NO);

InputStream i = s.getInputStream();
InputStreamReader isr = new InputStreamReader(i);
BufferedReader br = new BufferedReader(isr);
String str = new String();

while((str=br.readLine())!=null){

   System.out.println(str);  // do whatever u want to do with str, the data read


 }
于 2012-08-15T14:42:46.457 に答える