問題タブ [tcpsocket]
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.
ruby - Ruby TCPSocket - ターゲット マシンがアクティブに拒否したため、接続できませんでした
TCPSocket
に接続できませんTCPServer
:
クライアント
サーバ
エラー:
IIS がリッスンしているポート 80 に接続すると、TCPSocket は正常に動作するため、TCPServer の例に問題があると思われます。
ファイアウォールをオフにしても効果はありません。さらに、IIS を停止して TCPServer をポート 80 に設定すると、エラーは同じになります。
ruby - 1 つの TCPSocket、2 つのスレッド
TCPSoket
同じソケットへのデータ送信をブロックしないクライアントのリッスン ループを実装する必要があります。
おおよその構造は次のとおりです。
この構造で大丈夫でしょうか?
ここで 2 つの戦略を実装する必要があります。
- 応答 = send_request(request_data)
- リスナー - 着信データがリクエストに対する応答ではなく、リッスンする必要がある非同期データの場合。
javascript - TCPSocket.send: バッファがいっぱいになるとどうなりますか?
のドキュメントからTCPSocket.send
:
send が を返し
true
た場合、バッファリングされたのは 64k 未満であり、すぐにさらに書き込んでも安全です。send が を返し
false
た場合、64k 以上がバッファリングされており、呼び出し元は、send 呼び出しによってさらにデータをバッファリングする前に、drain イベントがトリガーされるまで待機したい場合があります。
これは、バッファ オーバーフローを回避するために次に何をすべきかをプログラムに指示します。
バッファがすでにいっぱいの場合はどうなりますか? プログラムは、データを送信する前にバッファがいっぱいかどうかを確認できますか?
c - TCP recv と受信バッファリング
ネットワーク アプリケーション プロジェクトに問題があります。
これは私の主要な構造の一部です:
recvの戻り値を扱う関数です
これはデータのバッファリングを処理する関数です:
これは、INT 変数の recv を処理する関数です。
この最後のものは完全に間違っていると思います。私はローカルホストでアプリを試していて、部分的なデータのみを受け取ることはめったにないからだと思います..
そして、riceviMsg() については、次の疑問があります。
「ciao\0」を送信すると、反対側で最初に受信する文字は? "c" または "\0" ?
みんなに感謝します:)
Ps : データの長さを文字列に変換して送信し、riceviMsg() 関数で処理しようと思います。riceviLenght() は完全に間違っているので削除します。しかし、riceviMsg() のバッファが正しく機能するかどうかはわかりません :/
python - Python: サーバーソケット接続を待機中にループを実行
XBMC で見ている映画のタイムコードを表示するために使用する LCD があり、何も再生されていないときに現在の日付と時間を表示したいと考えています。LCD をホストするマシンは、私の XBMC インストールから表示されるテキストを受信する Python TCPSocketServerサーバーを実行しています。問題は、XBMC がソケットを介して時間と日付を送信し、LCD がそれを表示できるように、アクティブなネットワーク接続を維持する必要があることです。私の意見では、LCD をホストしているマシンの日付を表示し、ソケットがアクティブなときに「タイムコード ビュー」に切り替えるのが最善の方法です。
接続を待っている間に日付を表示するためのループを計算し、その動作を変更してソケットを介して受信したデータを計算する TCPSocketServer を設定する「pythonic」方法はありますか?
よろしくお願いします
java - パブリックの Java TCP ソケット
サーバーとクライアントのJava TCPソケットを作成しました。プライベートネットワーク(192.168.2.x)で動作しますが、パブリックIPで動作させる方法がわかりません。ルーターでポートを開き、サーバーIPとこのポートを使用してクライアントソケットを初期化する必要があると思います! 私はそれを試してみましたが、うまくいきませんでした。
ここでのソケットの初期化:
Socket clientSocket = new Socket(IP, PORT);
ServerSocket server = new ServerSocket(PORT);
c# - 1 バイトを超えるバッファを使用すると、サーバーからの応答が不完全になる
TCP ソケットを使用して XML 形式のメッセージをサーバーに送信しています。サーバーは完全なメッセージで応答します (WireShark で確認しました) が、自分の側で完了するのに問題があります。1 バイトより大きいバッファを使用すると、応答のメッセージの最後にバッファの残りのサイズがありません。1 バイトのバッファを使用すると、99% のケースで機能します。私が使用している と関係があると思いますが、StringBuilder
すでにアイデアがありません。と も試しましたが、うまくNetworkStream
いきStreamSocket
ませんでした。任意のヘルプまたは応答をいただければ幸いです。
c++ - TCP ソケットを介して可変サイズのデータを受信する
(TCP) ソケットを介したデータ転送で小さな問題が発生しました。私がやっていることの小さな背景:
A 側から B 側にデータを送信しています。最大サイズが 1096 バイトであると仮定すると、送信されるデータは可変長にすることができます。
B では、予想されるサイズがわからないため、常に 1096 バイトを受信しようとします。
ただし、これを行ったとき: A がデータの小さなチャンクを送信していることに気付きました..たとえば、約 80 ~ 90 バイトです。数回の送信バーストの後、B はそれらを組み合わせて receiveBytes を 1096 にしました。これにより明らかにデータが破損し、地獄が解き放たれました。
これを修正するために、データをヘッダーとデータの 2 つの部分に分けました。
A面:
B では、最初にヘッダーを受信し、受信するペイロードのサイズを決定します。次に、残りのペイロードを受信します。
そのため、ペイロードを持つ送信ごとに、受信を 2 回呼び出すことになります。これは私にとってはうまくいきましたが、これを行うためのより良い方法があるかどうか疑問に思っていましたか?
audio-streaming - RTSP を使用しないオーディオ ストリーミングの作成
オーディオ ストリーミング用のクライアント/サーバー システムを実装しようとしています。クライアントはファイルを要求し、サーバーはそれを送信する必要があります。その後、クライアントはすぐにファイルを再生する必要があります。rtp および rtsp プロトコルに基づくいくつかのソリューションを読みましたが、それらは私のユース ケースには複雑すぎます。TCP ソケットを介した単純なファイル転送を使用したいのですが、クライアントはダウンロードの終了を待たずにすぐにオーディオ ファイルを再生する必要があります。この解決策は可能ですか?
これは私が使用しているコードです。
サーバ:
クライアント:
小さな .wav でしか動作しないので、実際にファイルをストリーミング再生するわけではないと思いますが、ダウンロード後すぐに再生が始まります。ファイル サイズが約 1Mb 以上の場合、クライアントは例外を返します。
一方、サーバーは例外を返します。
助けてください。
周りを見回すと、HTTP プログレッシブ ダウンロードを使用する必要があることがわかりましたが、HTTP プログレッシブ ダウンロードを使用したクライアント/サーバーの実装例が見つかりません。