2


これが私がやろうとしていることです:
私はネットワーク上に4つの時計と1つのPCを持っています。私(PC)は、どの時計からも時刻を取得したいと思っています。

アイデア:
すべてのクロックはUDPブロードキャストを使用します(PCのIPがわからないためブロードキャスト)。PCは最初のデータセット(時間)を取得し、それ以降はこのクロックからのデータセットのみを調べます。(時計のわずかな時差で混乱しないように)

Clocks = Clients:
-ソケット
-ポート1234にバインド
-sendto(broadcast、 '1234')

PC = Server
--socket --bind
to port 1234
--recvfrom(data、client_addr)//最初に受信したデータからclient_addrを抽出します--connect
(client_addr)//このクライアントからのみデータを受信します
--recvfrom()

1:これはこれを行う正しい方法ですか?または、より良いオプションはありますか?

2:PC上の複数のアプリケーションで時間データを取得したい場合はどうすればよいですか?コードをコピーして使用できますか?私の印象では、ポート1234は、バインドを取得する最初のアプリケーションからブロックされています。(SO_REUSEADDRは機能しないと思います。これは、1つのアプリケーションだけがデータを取得し、どちらになるかわからないためです)

よろしく

4

1 に答える 1

2

1: これは正しい方法ですか?

はい。

または、より良いオプションがありますか?

オフハンドは考えられません。

2: PC 上の複数のアプリケーションに時間データを取得させたい場合、どうすればよいですか?

を使用しSO_REUSEADDRます。

コードをコピーして使用することはできますか?

はい。

私の印象では、ポート 1234 はバインドを取得した最初のアプリケーションからブロックされています。

いいえ。

(SO_REUSEADDRは機能しないと思います.1つのアプリケーションだけがデータを取得し、それがどれになるかわからないためです)

間違った推測。なぜそれについて推測するのですか?試してみませんか?推測よりもはるかに信頼性が高く、ここで質問するよりも迅速です。

于 2013-01-02T04:34:29.073 に答える