問題タブ [network-programming]
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.
web-services - Httplistenerの「指定されたネットワーク名は使用できなくなりました」
HttpListenerを使用してリクエストを送受信する単純なWebサービスを構築しました。場合によっては、「指定されたネットワーク名は使用できなくなりました」というメッセージが表示されてサービスが失敗することがあります。HttpListenerResponseの出力バッファーに書き込むとスローされるようです。
エラーは次のとおりです。
ListenerCallback()エラー:指定されたネットワーク名はSystem.Net.HttpResponseStream.Write(Byte []バッファー、Int32オフセット、Int32サイズ)で使用できなくなりました
これがコードの有罪部分です。responseStringは、クライアントに返送されるデータです。
常に巨大なバッファであるとは限りません。2つの例は3,816バイトで、142,619バイトで、これらのエラーは約30秒間隔でスローされました。私の単一のクライアントアプリケーションがHTTPlistenerをオーバーロードするとは思わないでしょう。クライアントは時折データをバーストで送受信し、いくつかの交換が次々に発生します。
ほとんどのGoogle検索では、これが一般的なITの問題であり、ネットワークの問題がある場合にこのエラーが表示されることが示されています。ほとんどのヘルプは、開発者がバグを追跡するよりも、アプリの問題を診断するシステム管理者に向けられています。私のアプリはさまざまなマシンやネットワークなどでテストされており、単なるネットワーク構成の問題ではないと思います。
この問題の原因は何でしょうか?
multithreading - POSIX キャンセル ポイントとは何ですか?
POSIX キャンセル ポイントとは何ですか? POSIX キャンセル ポイントの決定的なリストを探しています。
accept()
とselect()
キャンセルポイントと書いてある本を持っていたので質問していますが、インターネット上でそうではないと主張しているサイトを見たことがあります。
また、Linux のキャンセル ポイントが POSIX のキャンセル ポイントと異なる場合は、それらのリストも必要です。
java - ソケットは JVM でどのように実装されますか?
Java 仮想マシンでソケットがどのように実装されているか知りたいです。
- ネイティブ ライブラリは含まれていますか?
- もしそうなら、それは C ライブラリですか?
このトピックに関する情報はどこにありますか? ネットワーキングに関する公式のJava チュートリアルは役に立ちません。
いくつかの興味深いリンクが役立ちます。
更新: Sun から提供された公式情報はありますか?
前もって感謝します!
編集 私は証明を見つけました。私は自分の答えを正しいものとしてマークします。オスカーのおかげで、それは私にとって完璧なヒントでした!!! ありがとう!
python - 「接続がピアによってリセットされました」というエラーが表示されるのはなぜですか?
Python 2.6.1 を使用して、Mac OS X 10.5 ボックスでcogenをテストしています。テストとして10,000のクライアント接続を作成する単純なエコーサーバーとクライアントパンパーがあります。1000、5000など、どれも立派に動いています。ただし、接続数が約 10,000 になると、サーバーはランダムなクライアントをドロップし始めます。クライアントには、「ピアによる接続のリセット」が表示されます。
ここで見逃している基本的なネットワークの背景知識はありますか?
私のシステムは、開いているファイルを処理するように構成されていることに注意してください (launchctl limit、sysctl (maxfiles など)、および ulimit -n はすべて有効です。そこにある場合は、それを行ってください)。また、cogen が隠れて kqueue を使用することを選択していることも確認しました。
client-connect() 呼び出しにわずかな遅延を追加すると、すべてがうまく機能します。したがって、私の質問は、短期間に高頻度の接続がある場合に、ストレス下にあるサーバーが他のクライアントをドロップするのはなぜですか? 他の誰かがこれに遭遇したことがありますか?
完全を期すために、ここに私のコードがあります。
サーバーは次のとおりです。
そして、ここにクライアントがあります:
情報をありがとう!
java - Android HTTP 接続
Androidエミュレーターでこれが機能しない理由を誰か教えてもらえますか? ブラウザからアクセスでき、サーバーは内部です。私が考えることができるのは、ネットワーク層にアクセスできるように、アプリの構成が不足していることだけです。
UnknownHostException をスローします
ありがとう
java - Pacman in Java に関する質問
大学の課題のために、ネットワーク対応バージョンの pacman を作成する必要があります。最初に pacman のローカル コピーを作成してから、この機能をネットワーク プレイ用に拡張することで、この問題に対処するのが最善だと考えました。
私は Java GUI 開発に比較的慣れておらず、Java 内でそのような機能を利用していると言わざるを得ません。
Java 内でのゲーム開発と pacman ゲームの例に関して、上記のリンクをたどり始めました。
私は迷路を int 配列として表現することにしました。異なる値は異なる意味を持ちます。ただし、メイン ゲーム ループ内のペイント メソッドが実行されると、このメソッドで迷路全体を再描画しています。
ただし、これは1fps未満を提供しています。上記のリンクの例では、paint メソッドが呼び出されるたびに同様の再描画方法を使用していることに気付きましたが、表示できない画像でこれを行うと思います (ダブルバッファリングのようなものです [最初のリンクのように BufferStrategy を使用しました説明します]) 迷路を再描画するより良い方法は何ですか?
これに関するポインタ/アドバイスは役に立ちます。
お時間をいただきありがとうございます。
http://pastebin.com/m25052d5a - メイン ゲーム クラス用。
編集:どのコードが実行に非常に時間がかかっているかを確認しようとした後、非常に奇妙なことが起こっていることに気付きました.
paintClear(Graphics g) メソッドに追加しました
これにより、すべてがスムーズに実行されました-しかし、これらの行を削除すると、すべてが遅くなりましたか? 何が原因でしょうか?
c - ソケットが閉じられたときに UDP ソケットの選択が終了しません - 何が間違っていますか?
Linuxシステム(2.6.20カーネルを搭載したUbuntu 7.04サーバー)で作業しています。
UDP ソケットが読み取り可能になるのを選択で待機しているスレッド (thread1) を持つプログラムがあります。タイムアウトが必要なため、recvfrom を呼び出すだけでなく、(ソケットを単一の readfd および単一の exceptfd として) select を使用しています。
別のスレッドから、ソケットをシャットダウンして閉じます。スレッド 1 が recvfrom でブロックされているときにこれを行うと、recvfrom はすぐに終了します。スレッド1がタイムアウトのある選択でブロックされている間にこれを行うと、選択はすぐには終了しませんが、最終的には適切にタイムアウトします。
ソケットが閉じられるとすぐに選択が終了しないのはなぜですか? それは例外ではないですか?読めないところはわかりますが(明らかに)、閉じられているため、例外的なようです。
ソケットの開始は次のとおりです (単純にするために、すべてのエラー処理は削除されています)。
thread1 が実行する select ステートメントは次のとおりです。
更新: 明らかに (以下で説明するように)、ソケットを閉じることは例外的な条件ではありません (select の観点から)。私が知る必要があるのは、なぜですか?そして、それは意図的ですか?
私の期待に反しているように見えるので、この選択動作の背後にある考え方を本当に理解したいと思っています。したがって、TCP スタックがどのように機能するかについての考えを調整する必要があることは明らかです。説明してください。
c - C でのソケットプログラミング
わかりましたので、UDP コードを機能させようとしていますが、C を使用したネットワーク プログラミングに関してはほとんど緑色ではありません。ここのサンプル ファイルを使用しています。
基本的に、特定のポートで着信 UDP パケットをリッスンしているだけで、同じ方法でデータを送り返したいと考えています。以下、該当部分です。
この時点で、ソケットがセットアップされ、選択したポートにバインドされ、着信パケットを待ちます。
「こんにちは!」を送りたいだけです。送信者に文字列を返します。
これはエラー " GSPProxy: sendto: File name too long
" で失敗します。私が知る限り、[ENAMETOOLONG] エラー コードはどれですか。
しかし... **はどういう意味ですか? 何のファイル?長すぎるとは?
ソケットを再利用してデータを送り返すことができないということですか、それともまた新しい間違いを犯したのでしょうか?
よろしくお願いします、