0

ネットワーク通信を含む最初のプロジェクトを試みる準備をしています。これは、自己学習を目的とした単なるおもちゃのアプリです。ここではミッションクリティカルなものは何もありません。相互に通信するには2つのノードが必要です。1つはAndroidプラットフォームになるので、Javaを使用します。もう1つのノードは、DebianLinuxを実行しているRaspberryPiになります。私はこの目的でもJavaを使用でき、おそらくRPCを使用することもできますが、私がやりたいのは、2人が通信するための独自の小さな実装に依存しないTCP / IP「プロトコル」を開発し、それぞれに実装させることです。一番。「プロトコル」とは、標準のメッセージセットを、それぞれにいくつかの値とともに受け渡したいということです。例えば:

"Protocol" Definition:
MESSAGE TYPE A (Float arg, Int arg)
MESSAGE TYPE B (Int arg)
MESSAGE TYPE C (Int arg, String arg, Int arg)

「会話」の例:

Node 1                              Node 2
              A(5.4, 4)    --->
              B(6)         --->
        <---- C(3, 'Hello', 0xFF)
              B(5)         --->
        <---- A(43.0, 16)

だから私の質問は:

(1)上記は意味がありますか?意図を明確にする必要がありますか?詳細情報を提供しますか?これは、実行中の2つのプログラム間のネットワーク通信への私の最初の失敗であるため、私が求めているものはかなりオフベースである可能性があります。私がこれに間違った方法でアプローチしている場合、私はより良い推奨事項を喜んでいます。

(2)どうすればいいですか?1つの長い文字列をTCPパケットに詰め込むだけですか?もっと良い方法はありますか?

ありがとう!

4

2 に答える 2

1

必要なデータでバッファを埋めるだけでよく、TCP ソケットを介してデータを開いて送信する方法を学ぶだけです。カーネルは、ペイロードの配置方法と TCP ストリームの制御方法を処理します。サーバー側では、TCP ソケットをリッスンして着信データを読み取る方法を学ぶ必要があります。

于 2012-09-04T16:36:13.340 に答える
1

Socket Programming は、検索すべき単語です。

于 2012-09-05T07:23:48.427 に答える