問題タブ [tcp-ip]
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.
redirect - IPアドレスを指すようにWebサーバー上にファイルを作成する方法
www.mydomain.com/file.extenstion を minecraft やその他の tcp/ip 接続などに入力して、自分の IP アドレスを参照できるようにしたいと考えています。
c# - 非同期ソケット メソッドの使用時に遅延を設定する
ソフトウェア開発には C#、.Net Framework 3.5 を使用しています。私のアプリケーションは、TCP/IP を介して一度に複数のクライアントに接続し、それらからいくつかのデータを収集します。クライアント数が非常に多い ( 100 以上)。アプリケーション開発プロセスの前に、いくつかの調査を行ったところ、パフォーマンスと管理性の面で非同期ソケットの実装を使用する必要があることがわかりました。
今のところ問題ないようですが、現在、データをクライアントに送信する直前に遅延を設定する最良の方法を探しています。私のアプリケーションは、特定のデータを送信するために約 2 秒待つ必要がある場合があります。System.Threading.Thread.Sleep(2000);
とりあえず、非同期送信メソッドの前にコード行を入れただけです。これは便利な方法ですか、それとももっと良い方法はありますか? このSleep
関数はアプリケーションのメイン スレッドをブロックしますか、それとも非同期ソケットが属するスレッドのみをブロックしますか。
tcp-ip - ネットワークプログラミングとは
eclipse で Java を使用してプログラムを完成させました。コードを .jar ファイルに変換し、.jar ファイルを .exe ファイルに変換しました。.exe ファイルに関連するインストーラーも作成しました。プログラムを使用してデータをエンコードするたびに、すべてのデータが .exe ファイルがあるフォルダー (ローカル ハード ドライブ) に記録され、プログラムは問題なく動作しています。問題は、私のプログラムの概念は、自分のコンピュータ (LAN 内の作業ステーションの 1 つ) で使用するだけでなく、ローカル エリア ネットワークに展開することでもあり、そこでコンピュータの 1 つからデータをエンコードできることです。現在のプログラムが行っているように、ステーション(クライアント)のハードディスクではなく、サーバーのハードディスクにそれらのデータを保存します。私' ワークステーションからのデータをエンコードし、データをサーバーのハードディスクに保存するという概念を実現する方法についていくつかの調査を行いました。これまでのところ、TCP/IP プログラミングとネットワークプログラミングを考え出しました。私の質問は、私は正しい道を進んでいますか? Javaのこの部分を進めれば、目標を達成できますか、それとも私のコンセプトを達成する他の方法がありますか. この目標を達成する方法を誰かに教えてほしいと言っているわけではありません。正しい道を歩んでいるか (TCP/IP とネットワーク プログラミングを勉強しているか)、またはこの概念を達成するために Java の他の部分を勉強する必要があるかどうかを尋ねているだけです。 . 私の質問の仕方を考えてみてください。私は非常に初歩的だと感じています。正直に言うと、TCP/IP プログラミングについてほとんど考えていません。また、TCP/IP が私の概念を達成するために勉強する正しいトピックであるかどうかもわかりません。誰かがこの問題について私にヒントをくれることを願っています。
ruby - RubyでSSL対応のTCP/IP接続を確立する方法
アクセスする必要のあるSSL対応ポートを持つサーバーとのTCP接続を確立する必要があります。
XMLファイルを送信し、サーバーから応答を取得する必要があります。
SSLを有効にする前は、以下のコードを使用してサーバーからデータを取得することができました。
これで、接続を確立するために必要な「certi.pfx」ができました。my_xmlデータを送信して応答を取得します。これはどのように行うことができますか。
また、「pem」ファイルと「key」ファイルがあるかどうか、接続を確立する方法、my_xmlデータを送信して応答を取得する方法についても知りたいです。
助けてください。
delphi - 有効な RTSP ストリームについてネットワーク デバイスをテストする方法は?
VLC Media Player プラグインを使用して RTSP 経由でビデオ/オーディオをストリーミングするプロジェクトに取り組んでいます。RTSP カメラのネットワークをスキャンするオプションを提供したいと考えています。これは、すべてのネットワーク デバイスのリストを照会し、ポート 554 をテストすることで構成されると確信しています。これらはすべて私が処理できます。しかし、ここまで来たら、ポート 554 経由でデバイスをテストして、有効な RTSP カメラであることを確認するにはどうすればよいでしょうか?
これを行うには何かが必要だとWinsock
思いますが、ソケット接続をテストして、接続できる有効な RTSP ストリームであることを確認するにはどうすればよいですか? どのような方法を使用する場合でも、RTSP 経由であらゆる種類の認証を使用してそれぞれに接続する必要はありません。ポート 554 が実際に RTSP ストリームを提供しているかどうかを判断する低レベルの方法を探しています。
c# - TCPクライアントからのデータの受信中にエラーが発生しました
カスタマイズしたプロトコルに従って、ポートをリッスンしていくつかのパケットを受信するアプリケーションを作成しました。パケットは49バイトから1500バイトのいずれかであり、パケットのデータ長からわかります。49バイトのパケットとそれより大きいパケットのデータを解釈して処理する方法は異なります。
問題は、1374バイト未満のパケットを受信するとすべて問題がないことですが、パケット長が長くなると、次の例外が発生し、データの最後の4バイトも失われます(1384バイトのパケットでテストしました。最後の4バイトを失った)
発生する例外:インデックスが範囲外でした。負ではなく、コレクションのサイズよりも小さい必要があります。パラメータ名:startIndex
49バイトの各パケットには35バイトのデータがあり、より大きなパケットのデータ長は非決定論的です(圧縮のため)。
最後の4バイトが別々の「bytes」変数と「result」変数にあることがあります。これは、それらが新しいパケットのように扱われ、それらが属するパケットに添付されていないことを意味します。
データを受信するためのコードは次のとおりです。
グレッグサジェストと私の研究によると、私も次の方法を使ってみました:
delphi - TCPクライアントがRTSPサーバーから応答を受信しない
Delphi XE2では、TTCPClient
コンポーネントを使用してRTSPサーバーと通信しています。試行錯誤の結果、サーバーから応答が返ってこなかったため、プロジェクトを切り替えて、ポート80(RTSPの554ではなく)を介してHTTPリクエストを送信し、ウェブサイト(具体的にはwww.google.com)にリクエストを送信しようとしました。まだ応答がありません。
TTCPClient
メインフォーム(Form1
)Client
に、と呼ばれるコンポーネント、TMemo
と呼ばれるコントロール、と呼ばれるコントロールLog
、およびコントロールがあります。コードの関連部分は次のとおりです。TEdit
txtHost
TBitBtn
サーバーにつなげる
OnConnectイベントハンドラー(HTTP)
OnConnectイベントハンドラー(RTSP)
OnReceiveイベントハンドラー
OnErrorイベントハンドラ
イベントが呼び出されることはなく、OnReceive
接続しているサーバーから何も返されません。
私はここで何が間違っているのですか?
参考文献
これらは私が参照しているいくつかのリンクです:
- http://effbot.org/zone/socket-intro.htm
- http://www.ietf.org/rfc/rfc2326.txt
- http://folk.uio.no/meccano/reflector/smallclient.html
- http://www.samsungdforum.com/upload_files/files/guide/data/html/html_3/reference/rtsp_specification.html
私が使っているカメラはGrandstream GXV3601LL
アップデート
問題はRTSPサーバーにあると結論付け、GrandstreamのWebサイトのフォーラムで質問しました。このコードは他のサーバー接続でも機能します。
networking - tcp にバッファ内の最も古いデータ セグメントを強制的に破棄させ、NS2 のアプリケーションによって書き込まれた新しいデータを受け入れるにはどうすればよいですか
リアルタイム通信でうまく動作するように TCP を調整しようとしています。これを行うための仕様の 1 つは、TCP が「信頼できない」場合があるバッファがいっぱいになった場合でも、アプリケーションによって書き込まれた新しいデータを受け入れるように TCP を強制することです。このようにして、アプリケーションの書き込み呼び出しがブロックされることはなく、送信側アプリケーションのタイミングが崩れることはありません。NS2にはそれを可能にするオプションが必要だと思います。では、TCP にバッファ内の最も古いデータ セグメントを強制的に破棄させ、アプリケーションによって NS2 に書き込まれた新しいデータを受け入れるにはどうすればよいでしょうか?
python - Selenium webdriver での tcp/ip ポートの枯渇
Selenium webdriver (Python で記述) を使用した一連のテストに取り組んでいます。テスト対象のページには、選択ボックスの 1 つで選択された値に基づいて表示されるフィールドを変更するフォームが含まれています。この選択ボックスには、約 250 のオプションがあります。選択ボックス内のすべてのオプションを反復処理し、選択した各オプションに対してフォームに正しいフィールドが表示されていることを確認するテストがあります (鼻を介して実行されますが、おそらく関係ありません)。
問題は、オプションごとにセレンを介して呼び出すことです。
- クリックしてオプションを選択します
- 7 つのフィールドの find_element と is_displayed
- 選択ボックス内の項目の find_elements
- 選択ボックスの各オプションの get_attribute とテキスト
したがって、(およそ) 250 * (7 * 2 + 1 + 2 * 250)、またはテストが実行されている webdriver サーバーへの 128,750 の個別の要求がすべて約 10 または 15 分以内に発生します。これにより、テストを実行しているマシンでクライアント ポートが枯渇する場合があります。これはすべて、選択ボックスがどのように解析されるか、新しいページ オブジェクトがいつ作成されるかなどを抽象化するテスト フレームワークを介して実行されるため、テスト コードの最適化は、すべてをハッキングするか、または破棄することを意味します。このテストのためのフレームワークであり、すべてを手動で実行します (テスト コードの保守性を考えると、これは悪い考えです)。
解決策について私が持っていたいくつかのアイデアは次のとおりです。
- 何らかの方法で webdriver サーバーへの接続をプールまたは再利用しようとしています
- セレンのタイムアウトによって接続が開かれたり、より迅速に強制終了されるように、
urllib2
または実行時に何らかの方法で構成を微調整するhttplib
- セレンによって開かれているポートをアクティブに追跡して閉じるための、システムに依存しない (または少なくとも OS スイッチなどを備えたすべてのシステムに実装可能な) メカニズム
上で述べたように、ページの解析方法や処理方法を微調整することはあまりできませんが、サブクラス化/微調整WebDriver
またはRemoteConnection
任意の方法を制御できます。上記のアイデアのいずれかにアプローチする方法、または私が思い付いていないアイデアについて誰か提案はありますか?
java - TCP/IP ソケットでの複数の要求の処理
Java TCP / IPソケットで複数のリクエストを処理するのは非常に簡単ですか. メッセージを受け取ってスレッドを生成するだけです。別のメッセージを受け入れて、別のスレッドを生成します。問題は、スレッドの生成を開始すると、物事がより非決定的になるということです。10 のクライアントがあり、1 つのクライアントがリクエストを発行し続け、残りの 9 9 がハイパーアクティブ クライアントの 10% パーセントでリクエストを送信すると、調べるのが難しくなるとします。
これを処理する 1 つの方法は、すべてのクライアントが対応するセマフォを持つサーバーにセマフォのハッシュマップを用意することです。クライアントのリクエストを処理する前に、セマフォを通過させ、各クライアントが一度に特定の数のリクエストのみを持つことができるようにセマフォを構成できます。
この段階では、うまくいくと思いますが、これを行うより良い方法やライブラリはありますか?