問題タブ [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.
c# - .Net を使用してドメイン内のコンピューターのリストを取得する
C# を使用してドメイン内のコンピューター名のリストを取得する方法は?
sockets - 受け入れられなかった接続はどうなりますか?
localhost:80のリスニングソケットと、telnetlocalhost80を使用して接続しているクライアントを想定します。
問題は、限られた数の同時クライアントのみを受け入れたいということです。1つだけを想定しています。その後、私は単に何も受け入れません。
netstat -aを使用して見た問題は、次のクライアント接続が確立されたことです。はい、私はそれを処理しませんが、システムレベルでは、ESTABLISHEDとして表示され、クライアントはデータを送信でき、おそらくシステムに余分なオーバーヘッドを引き起こす可能性があります。
The only way I see is to continue accepting clients but disconnect them. Am I right?
network-programming - ICQ が独自のクライアントを開発するために使用するプロトコルのスタックはどこにありますか?
私は ICQ クライアントを開発しようとしていますが、彼らが使用したプロトコルを理解するためのリファレンスはどこにあるのでしょうか? リンク、書籍など。
ちなみに、私が間違っていなければ、すべての ICQ クライアント (QIP、Miranda、ICQ Lite など) は、同じバージョンのプロトコルを使用して ICQ サーバーと正しく通信しますか?
java - Java ソケットプログラミング
Java ソケットを使用して単純なクライアント/サーバー アプリケーションを構築し、ObjectOutputStream などを試しています。
私は、この URL http://java.sun.com/developer/technicalArticles/ALT/socketsのチュートリアルに従っています。ソケットを介したオブジェクトのトランスポートについて話しているときは、途中から始まります。
クライアントのコードを参照してくださいhttp://pastebin.com/m37e4c577ただし、これは機能していないようで、何が機能していないのかわかりません。一番下にコメントアウトされているコードは、チュートリアルから直接コピーされたものです。これは、クライアント オブジェクトを作成する代わりにそれを使用するだけで機能します。
誰でも私が間違っていることを見ることができますか?
c# - テスト目的でネットワーク障害をシミュレートする方法 (C#)?
新しいアプリの DAL と呼ばれるものを構築しています。残念ながら、データベースへのネットワーク接続は実際の問題です。
テストの範囲内でネットワーク アクセスを一時的にブロックして、そのような状況で DAL が期待どおりに動作することを確認できるようにしたいと考えています。
更新: ネットワークを手動で無効にする方法はたくさんありますが、テスト自体で有効/無効にできれば便利です。
c# - ドメインコントローラーのIPアドレスを取得する方法
プログラムでドメインコントローラーのIPアドレスを取得するにはどうすればよいですC#
か?
java - Java NIO:大きなメッセージをすばやく送信すると、パケットが切り捨てられ、データが失われます
Java(NIO)サーバー(Linuxを実行している)からクライアントに複数の大きなメッセージをすばやく連続して送信すると、パケットが切り捨てられるという厄介な問題があります。問題が発生するには、メッセージが大きく、非常に迅速に送信される必要があります。これが基本的に私のコードが行っていることです(実際のコードではありませんが、多かれ少なかれ何が起こっているのか):
したがって、パケットが十分に長く、可能な限り迅速に送信される場合(つまり、遅延のないこのようなループで)、もう一方の端では、次のような結果になることがよくあります。
データが失われ、パケットが一緒に実行され始めます。そのため、パケット5の開始(この例では)は、パケット4の開始と同じメッセージで到着します。切り捨てるだけでなく、メッセージを一緒に実行します。
これはTCPバッファまたは「ウィンドウサイズ」に関連していると思います。または、ここのサーバーは、OSやネットワークアダプタなどが処理できるよりも高速にデータを提供しているだけだと思います。しかし、どうすればそれをチェックして、それが起こらないようにすることができますか?sc.write()を使用するたびにメッセージの長さを減らしても、繰り返しを増やしても、同じ問題が発生します。短時間でのデータ量の問題に過ぎないようです。sc.write()が例外をスローしていることもわかりません(上記の例ではチェックしていませんが、テストにはあります)。
プログラムでデータの準備ができていないかどうかをプログラムで確認し、遅延を入れて、準備ができるまで待つことができれば幸いです。「sc.socket()。setSendBufferSize(1024 * 1024);」かどうかもわかりません。何らかの効果があります。または、Linux側でこれを調整する必要がある場合。SocketChannelを実際に「フラッシュ」する方法はありますか?不十分な回避策として、たとえば10KBを超えるメッセージを送信しようとしているときはいつでも、バッファリングされているものを明示的に完全に送信しようとすることができます(これは私のアプリケーションではそれほど頻繁ではありません)。しかし、バッファの送信を強制する(または送信されるまで待つ)方法はわかりません。助けてくれてありがとう!
c# - C# ネットワーク プログラミングとリソースの使用
私は、C# で「正しい」ネットワーク コードを記述する最善の方法について、多くの調査を行ってきました。
C# の "using" ステートメントを使用した多くの例を見てきました。これは良いアプローチだと思いますが、さまざまな式で一貫性のない使用方法を見てきました。
たとえば、次のようなコードがあるとします。
明らかに、このコードは非常に不安定になります。それで、tcpClient を使用するコードを見てきましたが、これは良さそうです。しかし、NetworkStream にもクリーンアップが必要なリソースはありませんか? StreamReader/Writer はどうですか?
ネストされた using ステートメントで 4 つのステートメントすべてをラップする必要がありますか?
もしそうなら、処分する時が来たらどうなりますか?StreamWriter はストリームを閉じず、その結果ソケットを閉じませんか? では、StreamReader、NetworkStream、TcpClient がそれぞれ破棄されるとどうなるでしょうか?
これは別の質問を引き起こします。StreamReader と StreamWriter の両方が同じストリームで構成されている場合、誰がそれを所有しますか? 二人とも自分が所有していると思って、破壊しようとしているのではありませんか? それとも、フレームワークはストリームが既に破棄されていることを認識しており、黙って無視しているのでしょうか?
using ステートメントはチェーンの最後のステートメントにのみ必要なように思えますが、GetStream() で例外がスローされた場合はどうなるでしょうか? その場合、ソケットが適切にクリーンアップされるとは思わないので、これが起こらないようにするために冗長な使用が必要なようです。
例外処理とリソース管理に関する章を含む、.net とできれば c# を使用したネットワーク プログラミングに関する優れた最近の本を知っている人はいますか? または、オンラインの良い記事はありますか?私が見つけることができるすべての本は .NET 1.1 時代 (Microsoft .NET Framework のネットワーク プログラミング、.NET でのネットワーク プログラミングなど) のものであるため、これは適切なリソースが必要なトピックのようです。
編集:
マークの非常に良いコメントが、他の誰かがこれについてコメントするのを止めさせないでください:)
特に非同期の使用に関して、リソース管理に関する本の推奨事項や意見を誰か他の人に聞いてみたいです。