問題タブ [localserversocket]
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.
c - Scapy で C ソケットに話しかける
UDP 接続が確立されており、ポート (localhost) でリッスンしています。ローカルホストからも Scapy パケットを送信しようとしています。何らかの理由で、C コードが実際にパケットをキャプチャすることはありませんが、Wireshark でパケットが正常に表示されることは確認できます。ソケットを使用してからしばらく経ちましたが、設定する必要がある特別なソケット オプションがいくつかありますか、それとも Wireshark では問題なくパケットを表示できるのに、C ソケットでは表示できないのはなぜですか?
注: (localhost から) パケットを送信するための対応するソケット コードを記述したとき、パケットを正常にキャッチできましたが、別のコンピューターから送信されたときにパケットをキャッチするためのリッスン コードをまだ取得できません。
同様の質問を見つけましたが、(TCP の代わりに UDP を使用して) 彼らのアプローチを試みたとき、まだ netcat に Scapy パケットをキャッチさせることができませんでした。
Cコード(わかりやすくするために要約)
スキャピースクリプト
java - ローカル ServerSocket の OutputStream への書き込み時に ECONNRESET (ピアによる接続リセット) が観察される
こんにちは、私は同様の質問への回答を読みましたが、どれも私が直面している問題を解決できませんでした。
ステップ 1.) ServerSocket (localhost ポート 8675) を作成し、ソケットを受け入れ、対応する OutputStream を取得します (これには非同期タスクを使用します)。
step2.) データのチャンクを byte[] (12kb) として取得します。
ステップ 3.) この 12kb バイト [] を出力ストリームに書き込みます。
最初のチャンクの書き込みは成功しましたが、次のチャンクを書き込もうとすると、このエラーに直面します。
03-27 21:13:00.275 W/System.err(28866): java.net.SocketException: sendto に失敗しました: ECONNRESET (ピアによる接続のリセット)
03-27 21:13:00.275 W/System.err (28866): libcore.io.IoBridge.maybeThrowAfterSendto (IoBridge.java:506) で
03-27 21:13:00.275 W/System.err (28866): libcore.io.IoBridge.sendto (IoBridge.java:475) で
03-27 21:13:00.275 W/System.err(28866): java.net.PlainSocketImpl.write (PlainSocketImpl.java:507) で
03-27 21:13:00.275 W/System.err(28866): java.net.PlainSocketImpl.access$100 (PlainSocketImpl.java:46) で
03-27 21:13:00.275 W/System.err(28866): java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:269) で
これらは、サーバーソケットを作成し、出力ストリームを取得するためのコードブロック非同期タスクです
今、私が得る byte[] チャンクを書くために
関連するコードのみを追加したいくつかのポイント。
これらは、成功したと思われる最初のデータ書き込みのログです
03-27 21:13:00.150: 長さ =12288 の着信データ
03-27 21:13:00.155 : サーバーソケット開始の doInBackground
03-27 21:13:00.155 サーバー ソケットの doInBackground 開始キュー データ len12288
03-27 21:13:00.155 バッファ サイズ = 12288
03-27 21:13:00.155 ソケットにバッファを書き込みます 03-27 21:13:00.160 ソケットをフラッシュします
03-27 21:13:00.160 doInBackground 実行終了
2 回目のデータ書き込みログは次のとおりです。
03-27 21:13:00.275 長さ =12288 の着信データ
03-27 21:13:00.275 サーバー ソケットの doInBackground 開始
03-27 21:13:00.275 サーバー ソケットの doInBackground 開始キュー データ len12288
03-27 21:13:00.275 バッファ サイズ = 12288
03-27 21:13:00.275 ソケットへの書き込みバッファ
03-27 21:13:00.275 W/System.err(28866): java.net.SocketException: sendto に失敗しました: ECONNRESET (ピアによる接続のリセット)
03-27 21:13:00.275 W/System.err(28866): $writetask.doInBackground(SampleServiceImpl.java:360) で // 書き込みに失敗する
これが発生する理由は、出力ストリームが高速な間隔でデータのチャンクを書き込む必要があるためです(ローカルソケットではるかに高速な書き込み速度をテストしたため、疑わしいです)。
親切なアドバイス。ありがとう
c - ループ中のソケットサーバーで明確化が必要
以下は、ソケット サーバーのコードの一部です。いくつかの手順について明確ではないので、いくつか質問があります。私の質問は以下のとおりです。
- while (1) を使用する必要があるのはなぜですか?
- exit (-1) の目的は何ですか? ソケットを閉じますか?
- data_len が 1 として初期化されるのはなぜですか?
- サーバーが稼働していて、クライアント側からのデータがない場合、サーバーはどうなりますか? 閉まりますか?
実際には、コードの以下の部分について詳細な説明が必要です。
android - Android ローカル ビデオ サーバー
ビデオをストリーミングするソケットを使用して、ローカル Web サーバーを作成しようとしています。
以下は、サーバー用の私のコードです。
したがって、問題は、例外がスローされた後に Web ブラウザーで URL をヒットするたびに発生します。
HttpUrlConnection
そして、すべてのバイトフレームを使用してこのファイルをダウンロードすると、最後を除いてダウンロードされ、同じ例外がスローされます。
java - TCP - localhost サーバーで 2 人のプレイヤー間で Java ゲームをプレイする方法
Two Dice Pig
私はJavaで名前を付けたゲームを作りました。このゲームには、2 つのサイコロの面と、両方のプレーヤーのスコアと名前を表示するシンプルな GUI インターフェイスがあります。ゲームは、両方のプレイヤーの名前を尋ねる簡単なダイアログ メッセージで始まり、ゲームが開始されます。両方のプレイヤーは、1 つの GUI インターフェイスだけを操作し、自分の番が来たらプレイします。ゲームは完全にコード化されています。今、私が望んでいるのは、サーバーを作成することで(For now I want to try it on my local server)
あり、両方のプレーヤーが独自の GUI を取得する必要があります。また、プレーヤー A がプレイしている場合、プレーヤー B はインターフェースで何もできないようにする必要があります。私はそれがクリアされることを願っています。これは私のネットワーキング プロジェクトですが、その方法がわかりません。どんな助けでも大歓迎です。
Note: I want to apply the same idea as
これ man applied. Just watch only for 15 seconds. Thanks!
、