問題タブ [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.
flash - 最高のフラッシュオーディオ/ビデオ+インタラクティブサーバー?
Flashリアルタイムサーバーに関する提案を探しています。現在、MoockのUnityとRed5を組み合わせて使用していますが、いくつか問題があります。まず、AS3に移行し、UnityはAS2のみをサポートします。第二に、Red5は私たちにとってかなり不安定なので、もっと安定したものを好みます。公式のFlashMediaServerを使用することはできません。価格帯から少し外れています(1ライセンスあたり4,500ドルから)。
これまでのところ、私のニーズを満たすように見える2つのサーバー、ElectroServerとWowzaMediaServerを見つけました。誰かがこれらの経験を持っていますか、または提案する他のサーバーがありますか?私が探している主な機能:
- 安定
- クライアントライブラリでのAS3サポート
- サーバー側を拡張できます(Javaまたは他の言語を使用)
- フラッシュクライアント(Webカメラなど)からのリアルタイムオーディオ/ビデオをサポート
- (必須ではありませんが、非常に役立ちます)HTTPまたはHTTPSを除くすべてのトラフィックがブロックされている場合の通信方法。たとえば、RTMPT(トンネルRTMP over HTTP)サポートなど。
- 適度なパフォーマンス。サーバーを停止せずに、少なくとも数百人のユーザーを接続したいと思います。
asp.net - .NET での TCP/IP ソケット接続
現在のプロジェクトでは、tcp/ip ソケット接続を介して XML データを要求する必要があります。このために、私は TcpClient クラスを使用しています。
現在、これは小さな応答に対してうまく機能します。しかし、より大きなデータ ブロックの受信を開始すると、データがソケット接続を介してバーストでプッシュされているように見えます。これが発生すると、stream.Read 呼び出しは最初のバーストのみを読み取るため、残りの応答を見逃してしまいます。
この問題を処理する最善の方法は何ですか? 最初は、有効な XML ドキュメントが作成されるまでループしようとしましたが、stream.Read 呼び出しの合間に、基になるストリームがシャットダウンされ、データの最後の部分を見逃すことがあることがわかりました。
c - ansi c でソケットをポート 80 にバインドする
ポート 80 を c のソケットにバインドしようとすると、このポートを使用する権限がないというエラーが常に表示されます。この許可を取得する簡単な方法はありますか?
.net - .NET でキープアライブ ソケット チェックを行う最良の方法は何ですか?
.NET でキープ アライブ チェックを行う方法を探しています。このシナリオは、UDP と TCP の両方を対象としています。
現在TCPで私がしていることは、片側が接続し、送信するデータがない場合、X秒ごとにキープアライブを送信することです。
反対側にデータをチェックしてもらい、X 秒以内に受信されなかった場合は、イベントなどを発生させます。
私がやろうとした1つの方法は、ブロッキング受信を行い、ソケットのRecieveTimeoutをX秒に設定することでした。しかし、問題は、タイムアウトが発生するたびに、ソケットの受信が SocketExeception をスローし、こちら側のソケットが閉じることでした。これは正しい動作ですか? タイムアウト後にソケットが閉じる/終了するのはなぜですか?
データがあり、スリープが受け入れられないかどうかのチェック (スリープ中にデータの受信が遅れている可能性があるため)。
では、これを行う最善の方法は何ですか?また、反対側で説明した方法が失敗するのはなぜですか?
c++ - WinSocks と *nix 用のノンブロッキング ソケットの作成
C/C++ では、WinSocks と *nix の両方で、ブロッキング ソケットを非ブロッキング ソケットに変換する方法を教えてください。select() が正しく機能するようにします。プラットフォーム固有のコードにはプリプロセッサを使用できます。
c++ - ソケットエラーのための良いリソース?
すべてのタイプのbsdスタイルのソケットエラーのリストはどこにありますか?
java - Java: Object(In|Out)putStreams を介してブロッキング SocketChannel で同時読み取りと書き込みが可能ですか?
ブロッキングでObjectInputSteam
andを作成し、同時に読み書きしようとしています。私のコードは次のようなものです:ObjectOutputStream
SocketChannel
問題は、行 (A) での読み取りが完了するまで、行 (B) での書き込みがブロックされることです (によって返されるオブジェクトのブロックSelectableChannel#blockingLock()
)。しかし、アプリのロジックは、すべての書き込みが完了するまで読み取りが完了しないように指示するため、実質的なデッドロックが発生します。
SocketChannel
javadocs によると、同時読み取りと書き込みがサポートされています。
通常の Socket ソリューションを試したとき、そのような問題は発生しませんでした。
ただし、パフォーマンス上の利点を利用することはできませんFileChannel#transferTo(...)
python - Python で信頼性の高い完全に順序付けされたマルチキャスト システムを作成する
信頼できる完全に順序付けされたマルチキャスト システムを Python でゼロから作成する必要があります。外部ライブラリを使用できません。セントラルシーケンサーの使用を許可されています。
2つの直接的なアプローチがあるようです:
- 効率的なシステムを作成し、マルチキャストされた各メッセージに一意の ID を添付し、受信したメッセージ ID のシーケンサー マルチキャスト シーケンス番号を持ち、ACK と NACK をやり取りします。
- 各マルチキャスターが一度受信した各メッセージを単純に再送信する非効率的なフラッディング システムを作成します (その特定のマルチキャスターによって送信された場合を除く)。
私は 2 番目のオプションを使用することを許可されており、そうする傾向があります。
現在、UDP メッセージをマルチキャストしています (これが唯一のオプションのようです) が、これは、一部のメッセージが失われる可能性があることを意味します。つまり、#2 に従って再送信できるように、送信された各 UDP メッセージを一意に識別できなければなりません。本当に一意の番号を生成し (たとえば、送信者アドレスとカウンターを使用して)、それらを送信されるすべての UDP メッセージにパックする必要がありますか? どうすればそれを行うことができますか?データのストリームではなく、単一の UDP メッセージを Python で受信するにはどうすればよいですか (つまりsocket.recv
)?
c++ - ソケットプログラミングとマルチスレッドに関するインタビューの質問
以下のトピックのインタビューで尋ねられる可能性のある質問を教えてください。
- ソケットプログラミング
- マルチスレッド
時間を提供してくれたすべての人に感謝します
python - Python でのソケット接続のテスト
この質問は次のように展開されます: Python でソケットを開く最良の方法 ソケットを開く
ときに、ソケットが確立されているかどうか、タイムアウトしていないか、通常は失敗しているかどうかをテストするにはどうすればよいですか。
編集:私はこれを試しました:
ただし、その接続が機能しているはずの場合でも、アラート関数が呼び出されます。