組み込みC-インターネット接続を確認する


8

組み込みデバイスが実際に接続されている(つまり、WANに到達できる)かどうかを確認する方法はありますか?私のデバイスにはRTOSがないため、pingなどのOS機能に依存できません。DHCPがデバイスに正しいIPを与えることがわかりますが、たとえばwww.google.comのように到達できる正しいIPが与えられるとは、100%真実ではありません。

私はすでにいくつかの研究を行っており、さまざまなアプローチがあります。

  1. それは不可能だ
  2. それは愚かな質問です
  3. あらゆる種類の回避策ですが、SOに関しては自信があるので、試してみましょう。

したがって、これが1)または2)の返信としてある質問の場合は、削除して問題ありません。


デバイスを何のために使用していますか?主な機能が何らかの理由で機能しない場合に、インターネット接続チェックで接続が機能していることを確認していますか?
ヘルマー

@Helmarインターネットからデバイスにアクセスしてデータを交換する必要があるため、インターネット接続が機能していることを確認する必要があります
panc_fab

1
何をしようとしているのかよくわかりません。あなたの目標は、インターネットからいつでもリモートでデバイスにアクセスすることです。つまり、インターネット上ですでにアクティブなコンポーネントを管理しています。それが失敗した場合は、なぜそのコンポーネントに到達して、接続を再確立するために計画していることを何も行わないのですか?
ヘルマー

はい、私はあなたが言っていることが最も賢いことであると思います...問題ではない問題で自分を失うことがあります。私は組み込み環境にかなり慣れていないので簡単に混乱します。ありがとうございました!質問を閉じるために後で回答を投稿します。
panc_fab

回答:


4

サポートしてくれてありがとう。Helmarによって説明されている方法を最後に使用しました。この方法では、目的のターゲットに到達して確認するだけです。ターゲットから応答を取得できた場合、接続は有効で機能していることがわかります。それ以外の場合は、デバイスを切断して、新しい接続で再試行します。


3

pingのようなOSの機能に依存できません。

pingを自分で実装します。あなたはおそらくあなたのプラットフォームの例を見つけることができます。

または、サポートできる他のプロトコルを介してサービスに連絡してください。管理対象のサーバーでない限り、サービスがデバイスの存続期間中も利用可能であるとは限りません。

インターネットからデバイスにアクセスし、データを交換する必要があります

実際の目標がインバウンドトラフィックを許可することである場合、一般にそれは悪い考えであり、エンドユーザーがネットワークを許可できるようにすることは困難です。代わりに、通常はサーバーへの送信接続を確立/維持します。サーバーへの接続は、デバイス向けの検査済み着信トラフィックをトンネリングまたはリレーする可能性があります。このトンネルを作成/維持/再接続するコードに出力メカニズムを簡単に装備して、その状態を示すことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.