問題タブ [sockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
483 参照

c# - VS デバッガーがアタッチされた後、アプリケーションの動作が異なるのはなぜですか?

C# で記述されたデスクトップ アプリケーションがあります。ソケット接続を管理しようとして失敗します。Visual Studio デバッガーにアタッチされている場合、同じアプリケーションは成功します。

どのようにデバッグできますか?

0 投票する
13 に答える
214862 参照

c++ - ローカル コンピューターの IP アドレスを取得するにはどうすればよいですか?

C++ で、ローカル コンピューターの IP アドレスとサブネット マスクを取得する最も簡単な方法は何ですか?

ローカル ネットワークでローカル マシンの IP アドレスを検出できるようにしたいと考えています。私の特定のケースでは、サブネット マスクが 255.255.255.0 のネットワークがあり、コンピューターの IP アドレスは 192.168.0.5 です。ブロードキャスト メッセージをネットワークに送信するには、プログラムでこれらの値を 2 つ取得する必要があります (特定のケースでは 192.168.0.255 の形式で)。

編集: 2 つの異なるネットワーク IP を使用していたため、多くの回答で期待した結果が得られませんでした。Torialのコードはうまくいきました (両方の IP アドレスが得られました)。

編集 2:サブネット マスクに関する情報を提供してくれたBrian R. Bondyに感謝します。

0 投票する
4 に答える
1902 参照

c - 低レベルの一般的なbsdソケットよりも低い

Cで低レベルのソケットをどのように実行しますか。例:実際にSYNを送信します。

0 投票する
1 に答える
2961 参照

sockets - VxWorks5.5でUDPマルチキャストを受信する方法

VxWorks5.5でUDPマルチキャストを受信できませんでした。マルチキャストグループに参加しました:

隣接するWindowsマシン上の同様のコードは、マルチキャストを受信します。VxWorksからマルチキャストを送信できます。ifShow()は、インターフェイスがマルチキャスト対応であることを示します。MCAST_ROUTINGはカーネル構成で有効になっていますが、それでもマルチキャストを受信できません。

編集:マルチキャストをアプリケーション層に渡すことができるように、RealTekイーサネットドライブのRX構成レジスタにビットを設定する必要がありました。

0 投票する
10 に答える
324020 参照

java - java.net.SocketException: ソフトウェアが原因で接続が中止されました: recv に失敗しました

次のエラーが正確に何を意味するのかについて、適切な答えを見つけることができませんでした。

java.net.SocketException: Software caused connection abort: recv failed

ノート:

  • このエラーはまれであり、予測できません。ただし、このエラーが発生すると、URI に対する今後のすべてのリクエストも失敗します。
  • 機能する唯一の解決策 (また、たまにしかありません) は、Tomcat および/または実際のマシン (この場合は Windows) を再起動することです。
  • URI は確実に使用可能です (ブラウザーにフェッチを要求することで確認されます)。

関連コード:

0 投票する
2 に答える
4021 参照

java - Java マルチキャストの Time To Live は常に 0 です

データグラム パケットの TTL の設定に問題があります。パケットを multicastSocket に送信する前に、パケットで setTTL(...) メソッドを呼び出していますが、Ethereal でパケットをキャプチャすると、TTL フィールドは常に 0 に設定されます。

0 投票する
4 に答える
328 参照

c# - ソケットクライアントクラスの例外と結果コード

サーバーとのtcpソケット通信をカプセル化するクラスがあります。サーバーに送信されるコマンドメッセージごとに、サーバーは常に応答コード(OK、失敗)を含む応答メッセージを送り返します。私のクラスを使用すると、各コマンドはsyncまたはasyncのいずれかで実行できます。

発生する可能性のある例外には、基本的に2つのタイプがあります。切断またはその他の回復不能なエラーによって引き起こされる「障害」と、「バッファがいっぱいです」などの予期しない例外です。障害が発生した場合、接続が再確立されるまで、コマンドを続行したり、再試行したりすることはできません。応答が失敗した場合、または例外が発生した場合でも、コマンドを再試行できます...

したがって、現在、私のsyncコマンドメソッドは、OK、Fail、Faultの値を持つことができる列挙型を返します。例外が発生した場合は、(syncコマンドで)呼び出し元のスレッドに発生します。非同期コマンドの場合、Resultプロパティの列挙値に追加の値(OK、Fail、Fault、またはException)を含めることができ、コールバックはコマンドオブジェクトのExceptionプロパティを介して実際の例外オブジェクトにアクセスできます。

この戦略についてどう思いますか?同期コマンドに対して例外をまったく発生させず、内部で例外をログに記録し、代わりに4番目の列挙値を返すようにしたいと思います。とにかくどのような場合でも例外を実際に処理するのはそれだけだからです...または、使用しないでください結果コードはすべて、障害も含めてすべての場合に例外を発生させますか?

ありがとう。

0 投票する
4 に答える
1532 参照

python - Python での携帯電話用ソケット プログラミング

TCPソケットを介して電話とコンプの間で通信するためのコードを作成しました。インタラクティブ コンソールでコードを 1 行ずつ入力すると、正常に動作します。ただし、filebrowser.py からスクリプトを直接実行しようとすると、うまくいきません。ノキア N95 を使用しています。とにかく、filebrowser.py を使用せずにこのスクリプトを直接実行できますか?

0 投票する
4 に答える
2589 参照

linux - 多数のファイル記述子を最も効率的に処理するにはどうすればよいですか?

多数のソケット接続を処理するプログラム(Webサービス、p2pシステムなど)で使用できるオプションがいくつかあるようです。

  1. ソケットごとにI/Oを処理するために、個別のスレッドを生成します。
  2. selectシステムコールを使用して、I/Oを単一のスレッドに多重化します。
  3. ポーリングシステムコールを使用して、I / Oを多重化します(選択を置き換えます)。
  4. epollシステムコールを使用して、ユーザー/システムの境界を介してソケットfdを繰り返し送信する必要がないようにします。
  5. ポーリングAPIを使用して、接続の総数の比較的小さなセットをそれぞれ多重化する多数のI/Oスレッドを生成します。
  6. epoll APIを使用して、独立したI / Oスレッドごとに個別のepollオブジェクトを作成することを除いて、#5と同じです。

マルチコアCPUでは、#5または#6が最高のパフォーマンスを発揮すると思いますが、これをバックアップするハードデータはありません。Webを検索すると、上記の#2、#3、および#4の作成者テストアプローチの経験を説明するこのページが表示されました。残念ながら、このWebページは約7年前のものであり、最近の明らかな更新は見つかりませんでした。

だから私の質問は、これらのアプローチのどれが人々が最も効率的であるとわかったか、そして/または上記のどのアプローチよりもうまく機能する別のアプローチがありますか?実際のグラフ、ホワイトペーパー、および/またはWebで利用可能な記事への参照をいただければ幸いです。

0 投票する
3 に答える
39936 参照

c - Cでソケットデータを読み取るためのバッファを作成する方法

C / C++ ソケット プログラミングと "read(socket, buffer, BUFSIZE)" メソッドを使用します。char と byte が同じものであることはわかっていますが、バイト配列に含まれる要素の数は重要ですか? バッファーは、ヌル文字までメッセージ全体を保持できる必要がありますか?