問題タブ [networkstream]
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# - protobuf-csharp-ポート
私はJon Skeetの(優れた)GoogleのProtocol BuffersのC#/.Netへの移植を使用しています。
練習のために、いくつかのメッセージをソケットに送信するダミーのインスタント メッセンジャー アプリを作成しました。次のようなメッセージ定義があります:-
送信者がメッセージをシリアル化すると、非常にエレガントに送信されます:-
これはうまくいきます。しかし、反対側では、 を機能させるのに問題がありParseFrom
ます。
使いたい:-
しかし、代わりに、それをバイト単位で読み取ってから、ここから解析する必要がありました。これは、多くの理由から明らかに理想的ではありません。現在のコードは次のとおりです:-
を使用しようとするとParseFrom
、有効な GB メッセージが送信されていることがわかっている場合でも、呼び出し元のメソッドに制御が戻りません。
どんなアドバイスでもありがたく受け取らせていただきますが、
PW
c# - NetworkStream を使用してファイルを転送する
サーバー プログラムからクライアントにファイルを転送できません。私が対処したいいくつかの問題。まず、バイト配列を 6000 バイト大きくし、常にそのサイズにします。正しいファイル サイズを維持する方法はありますか? また、現在のコードでは、プログラムがハングします。クライアント側のwhileループから外すとうまくいきます。ヘルプ!!
クライアント:
サーバ:
編集!!!: ループの問題を修正しました。
c# - NetworkStream を使用してファイルを転送してからファイルを再構築すると失敗する
NetworkStream 経由でファイルを送信し、クライアント側で再構築しようとしています。データを正しく取得できます (私は思います) が、BinaryWriter または FileStream オブジェクトのいずれかを使用してファイルを再作成すると、使用する方法論に関係なく、最初は同じ時点でファイルが途切れます。
ステップスルーしてfileNameとfileSizeを確認すると、それらは正しいです。byte[] も完全に設定されています。次に何ができるか、何か手がかりはありますか?
前もって感謝します...
ショーン
編集!!!:
だから私は何が起こっているのかを理解しました。文字列を読み取ってからストリームから Int を読み取ると、バイト配列は 256 インデックスの長さになります。したがって、文字列の読み取りは int を取り入れているため、他の領域が破壊されます。これを理解する必要があります...
c# - NetworkStreamを介してアイテムを転送すると、一部のデータが破壊されます
filename(string)、filesize(int)、およびfile(byte [])を送信しています。何が起こっているのかというと、サーバー側でデータが処理される速度に応じて、NetworkStreamがまだ必要のないデータを読み取った場合があります。
例:.Readを実行してファイル名を取得し、filename、filesize、およびファイルの生データのデータを取得します。これは、最初の.Readがまだ実行されていないときに、サーバーが.Writeを実行し、データをストリームに書き込むために発生すると思います。これは私のファイルサイズを壊してしまいます。ファイルサイズの.Readを実行すると、巨大な数値が表示され、ファイル自体を読み取り、読み取ったファイルサイズに基づいて新しいbyte []を割り当てると、OutOfMemory例外が発生します。
読み取りを正しく同期するにはどうすればよいですか?私がネット上で見つけた例は、私と同じようにそれを行っています。
いくつかのコード:
私はオフセットを使用してみました... あなたの助けに感謝します。
私は別の質問を始めましたが、それは何か他のものに関連しています。
よろしくお願いしますショーン
編集:これが私の送信文字列コードです:
c# - NetworkStream での読み取り = 100% の CPU 使用率
while ループにある NetworkStream から読み取っています。問題は、CPU 使用率が 100% になっていることです。これが起こらないようにする方法はありますか?
これが私がこれまでに持っているものです:
... コードは続きます...
ReadStringFromClient コード:
c# - より大きなファイルサイズがNetworkStreamで誤って転送されています
NetworkStreamを介してファイルを転送していますが、ファイルが約5〜10kを超えると、ファイルがデータを見逃したり、大きな空白のギャップが生じたりするようです。
これが私が持っているものです:
flash - 外部 SWF がアンロードされた後もサウンドが再生され続ける
外部の SWF ビデオ プレーヤーをロードするある種のプレイリスト (その外部ファイルへのコード アクセスはありません) があるため、ユーザーはビデオを見たり、別のビデオにスキップしたりできます。ユーザーが別のビデオに切り替えると、新しい SWF ファイルがロードされます。
問題: ユーザーがビデオの視聴を終了せずに次のビデオにスキップした場合、以前の SWF ファイル ( unloadAndStop()
) をアンロードして、新しいファイルをロードします。また、前の SWF が再生されていたため、実際にはアンロードされず、まだバックグラウンドで再生されています (現在と前の 2 つのオーディオ トラックが聞こえます)。
通話を試みSoundMixer.stopAll()
ましたが、バックグラウンドの読み込みと再生開始時の現在のビデオのサウンドのため、実際には役に立ちません。
メインの「ローダー」アプリケーションからこれを解決する方法はありますか?
c# - ASP.NETでTCPストリームを直接書き込み/読み取りすることは可能ですか?
ASPまたはIISによる変更なしで、TCPストリームを直接書き込みおよび読み取りたいのですが。これは可能ですか?
編集:目標は、プログラムとサーバー間の通信を提供することです。それらの間のデータ交換は、接続ごとに25バイト未満です(デフォルトの場合)。したがって、ヘッダーは実際のデータよりも多くのトラフィックを引き起こします。サーバーの所有者がプログラムの実行を許可しないため、ASP.Netを使用する必要があります。
c# - DeserializeWithLengthPrefixの呼び出しでNetworkStreamから読み取られたバイト数をprotobuf-netで確認する方法
これを行う方法はありますか?DeserializeWithLengthPrefixを呼び出したときに、NetworkStreamから読み取られたバイト数を知りたいのですが。NetworkStreamはPositionプロパティをサポートしていないため、これを行う簡単な方法がわかりません。これはかなり効率的な方法で行うことができますか?プロファイリングの目的でこれを知る必要があります。プロファイリングのオーバーヘッドをできるだけ低くすることが理想的です。
c# - 接続されていないソケットでの操作は許可されていません - C# 4.0
行に「接続されていないソケットでは操作は許可されていません」というエラーが表示され続けます
そして、私はその理由がよくわかりません
以下は、その関数の残りのコードです