問題タブ [system.net.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.
c# - ソケットの送信バッファにあるデータの量を確認する方法
呼び出すことで、ソケットの受信バッファーにあるデータの量を知ることができますSocket.IOControl(IOControlCode.DataToRead, null, outValue);
ソケットの送信バッファにあるデータの量を知るのに相当するものはありますか?
帯域幅と遅延に制約のあるネットワークでできるだけ多くの UDP パケットを送信する必要があり、送信バッファーがオーバーフローする状況に陥っているため、なんらかのスロットリングを実装する必要があります。
c# - 非同期 TCP ネットワーキングは、C# で最大 32 人のプレイヤーが同時にプレイする専用サーバーに適したオプションでしょうか?
現在、最大 32 人のプレイヤーが同時に接続できる XNA ゲーム用の専用サーバーを C# で設計することを計画しています。私は System.Net を使ったネットワーキングの経験はありますが、これまで非常に多くのプレイヤー数に対処する必要はありませんでした。
スレッド (特に各プレイヤーに 1 つ) を作成および破棄することは良い考えではないことを心から知っています。また、「スレッドが利用できない場合に順番に待機する」ため、ThreadPool を使用するかどうかはわかりません。自然。そこで、大量のクライアント数を処理するために Async を使用することにしました (最後の選択肢とほぼ同じです)。
しかし、これが賢明な選択なのか、それとも厳しいニーズに合わせて他のものを使用すべきなのかはまだわかりません.
この質問が暗いように聞こえる場合は申し訳ありませんが、私はかなり困惑しています - 助けていただければ幸いです!
ssl - Powershellでクライアント証明書を使用してTCPクライアント接続を作成する方法
次のコードを使用して、SSL接続を確立できます。
これは問題なく動作します。しかし、今は認証用のクライアント証明書を追加したくありません。私はただ置き換える必要があると思います
と
しかし、私は議論を正しくすることができなかった。SombodyはAssyncCallsを解決できますか;-)多分私はこれのためにいくつかのC#コードが必要ですか?!?
引数は次のとおりです。
私が最終的に達成したいのは、クライアントが接続されている暗号スイートをリストし、後で指定することです。(私が知っているWiresharkを使用できます;-))
.net - FtpWebRequest が長い転送の最後に正確に WebException をスローするのはなぜですか?
FTP サーバーに接続してファイルをダウンロードしようとしていますが、問題が発生しています。
もともと私は WebClient.DownloadFileAsync を使用していましたが、小さなファイルでは問題なく動作しましたが、大きなファイルはダウンロードの最後に到達しましたが、DownloadFileCompleted を呼び出すことはありませんでした...
FtpWebRequest に切り替え、FileStream を使用して標準的な方法でファイルを書き込もうとしました。
これも小さなファイルでは問題なく動作しますが、大きなファイルではファイル全体をダウンロードしてから、InputStream.Read で System.Net.WebException を取得します。
編集:コードの構造に応じて例外が移動します...「使用中」のステートメントを削除し、各ストリームと応答を閉じると、最後の x.close() によって例外がスローされます。また、TotalBytesReceived は == to fileSize であるため、ダウンロードは技術的に完了していることに注意してください。編集終了
内部例外: 基になる接続が閉じられました: 受信時に予期しないエラーが発生しました。
system.Net.Tracing を有効にした後、次のログファイルを取得しました。
EDIT 19/04/2012: 私は Wireshark に ftp フィルターを使用してみました。
編集:新しい情報...別のフォーラムで、もう少し光を当てるが、まだ答えを提供していない情報を見つけました...ファイルサイズに違いはないようです。小さなファイルをダウンロードするが、ループ内でスレッドをスリープさせてダウンロード時間を延長することは、同じ効果があります。x時間(他の投稿では100秒と見なされます)より長い操作はすべて終了し、すぐにタイムアウトするようです。また、デバッガーをステップスルーするときに、受信したバイトの合計がファイルサイズに等しいことに注意しました。そのため、サーバーが決して見つからないことを除いて、ファイルの最後を読み取ろうとするのとまったく同じです。それを言う!編集終了
ftp サーバーは 226 - Closing data connection で応答すると想定されています。要求されたファイル アクションが成功しました (たとえば、ファイル転送またはファイルの中止)。
ただし、wireshark を使用すると、[TCP 再送信] が前に付いていないことがわかります。これが何であるかはまだわかりません...まだグーグルです。しかし、私はそれが関連性を持っていると確信しています。
そのため、何かがタイムアウトしているか、早期に閉じられているように見えますが、FTP と .net の両方が初めてなので、ここからどこに進むべきかわかりません。
私はさまざまなことを試しました:
- キープアライブ = false
- SetPointManager.MaxIdleTime
- サーバータイムアウトの増加
サーバーが私を追い出しているようですが、filezillaでは問題なく動作するため、これを回避する方法が必要です。
EDIT 20/04/2012: filezilla (またはエクスプローラー) では正常に動作しません エクスプローラーを使用して ftp からダウンロードしようとしたところ、操作がタイムアウトしたというメッセージが表示されました。Filezilla はファイルをダウンロードしてからタイムアウトしますが、巧妙に REST コマンドで再試行します。これを実装することが理想的なソリューションであると思われるので、それを理解するために出発します。成功したら回答として投稿します。編集終了
注意すべき点の 1 つは、WebException が渡されるまで、ダウンロードしたファイルへのアクセスがブロックされることです。したがって、タイムアウトに影響を与えることができない WebClient の場合、長時間 100% でハングアップします。そして例外をスローします。FtpRequest タイムアウトを 1000 に設定して例外を処理すると、ファイルは完全にダウンロードされたように見え、破損することなく抽出できます。
誰かがヒントや指針、またはさらに良い解決策を持っている場合:)私は非常に感謝しています. すべての入力が受け入れられます。
ありがとうございました
PSできるだけ多くの情報を提供しようとしましたが、さらに必要な場合はお知らせください。
visual-studio-2010 - Visual Studio が異なるユーザー セッションごとに System.Net.Socket を壊すのはなぜですか?
私は通常のセットアップを持っていないことを知っていますが、ここにあります:
私はコンピュータ ラボで働いており、コンピュータは Deep Freeze を使用してディスク イメージ上で実行され、
Windows 7 にログインするたびに、ログインごとに初期化されると思います。ログアウト後、ユーザー設定は保持されません。
Visual Studio 2010 Professional で新しい C# 4.0 コンソール アプリケーション プロジェクトを作成します。
次のコードを貼り付けます。
/li>Ctrl+Shift+S
F5; エラーなしで実行され、終了します。
Windows からログアウトし、再度ログインします。
Visual Studio 2010 Professional でプロジェクトを開きます。
F5; 引数の例外: http://pastebin.com/pSju1p76
/li>
これどうしたの?
ios - monotouch での system.net.sockets の nullreference
同じアプリケーションの 3 つのバージョンがあります。iPhone、モノ コンソール、Windows コンソール アプリケーションです。それらにはすべて、まったく同じコードが含まれています (MonoTouch C# 経由)。Mono(Touch) フレームワークでは、Assembly Browser から次の例外が発生します: (Windows は完全に動作します)
MonoTouch で System.Net.Sockets を使用する際に既知の問題はありますか? この例外の意味を知っている人はいますか (明白な NullReference 以外に)? 私はこの分野にとても慣れていません。うまくいけば、誰かが私を正しい方向に向けることができます。
vb.net - .NET で標準レイヤ 2 パケットを受信しない
.NET でレイヤー 2 パケットを受信しようとしています。ソケットをRAWモードで使用しようとしましたが、役に立ちませんでした。
WireShark パケットの例:
これまでに試したことの1つは次のとおりです。
c# - TCPクライアントを再利用するにはどうすればよいですか?
マルチスレッドおよびソケット消費との互換性に関して、System.Net.WebRequestおよびSystem.Net.HttpRequestで問題が発生しました。私はレベルを下げて、自分のダートシンプルなHttpクラスをロールバックしようとしました。
以前の問題は、各スレッドがあまりにも多くのソケットを作成するのが速すぎることだったので、複数の反復(forループ)で単一のソケット(スレッドごとに1つ)を使用しようとしています。
コード:
私のテストクラス(動作するまでIPとポートをハードコーディングしています):
静的ボイドメイン:
エラー
私が受け取っているエラーThe operation is not allowed on non-connected sockets.
は、forループの最初の反復が正常に完了した後です。
エラーの原因は理解できますが(応答を読み取った後はTcpClient.Client
閉じます)、ソケットに開いたままにするように明示的に指示する方法がわかりません。
編集
サーバーにあるサーバーから返されるHTTP応答の詳細な調査Connection: Close
。これは生のTCPであるため、HTTPを解析しないと思いました。これが問題の原因でしょうか?(もしそうなら、それを無視する方法があります)
c# - C# 文字列が Networkstream 経由で送信された後、読み取ることはできますが、「if」では機能しません
私は C# で小さなソケット アプリケーションを作成しました。このアプリケーションは、起動時にプログラムの現在のバージョンをチェックします。現在、このテスト プログラムでは、すべてが機能します。サーバーから文字列を送信すると、クライアントに適切に表示されます。 、しかし、その文字列で if ステートメントを使用しようとすると、機能しません。例:
ご覧のとおり、サーバーから送信されているテスト文字列「2.0.1」は、テスト用に入力したラベル、メッセージボックス、およびテキストボックスに正しく表示されます。しかし、クラスの最後のifブランチはそれを受け入れずにスキップします。elseステートメントを入れると、そこにスキップします。
私と私の友人が考えることができるすべてを試し、エンコーディングを変更してみました、別の文字列を送信しました..
クライアントの完全なコード: http://pastebin.com/bQPghvAH
c# - Dns.GetHostEntryは、IPを含む文字列を変換しません
この関数は文字列としてDns.GetHostEntry
は処理されませんが、パラメータとして渡すと非常にうまく機能します。ipaddresses
127.0.0.1
google.de
私は何か間違ったことをしていますか?