問題タブ [namedpipeserverstream]
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# - 着信パイプ ストリームを待機してブロックされているアプリケーションを終了する
スレッドで NamedPipeServerStream を実行し、次のように接続を待機するアプリケーションがあります。
アプリケーションは常に新しい接続を待っていますが、アプリを強制終了しようとすると、WaitForConnection の呼び出しでプロセスがハングします。
問題のスレッドを中止しようとしましたが、アプリケーションは強制終了されません。
NamedPipeServerStream に接続のリッスンを停止するように指示するにはどうすればよいですか?
編集:
NamedPipeServerStream にはメソッドが呼び出されていることがわかりEndWaitForConnection
ますが、 への参照が必要IAsynchResult
です。そのオブジェクトはどこで取得できますか?
c# - C# のマルチスレッド、マルチクライアント NamedPipeServer
マルチスレッドの名前付きパイプ サーバー/クライアントを構築しようとしていました。コードベースは、C# のマルチスレッド NamePipeServerスレッドに基づいています。
本当の問題は、確認応答を cleint に書き込むために双方向パイプが必要なことです。このため、入力を使用しProcessClientThread
て作成して書き込みを試みましたが、「壊れたパイプ」例外が発生しています。パイプはもう。StreamWriter
pipeStream
PipeDirection.InOut
何か案が?
.net - SonyVegasスクリプトでSystem.IO.Pipes.NamedPipeClientStreamを使用する
Sony VegasスクリプトでNamedPipeClientStreamを使用しようとすると、例外が発生します
と
これは私のコードがどのように見えるかです:
最新の.NetFramework(4.5)を完全にインストールしました。SonyVegasはどこでアセンブリを入手しますか。
助言がありますか?
c# - Mono の NamedPipeServerStream
C#.Net プロジェクトを Mono に変換しようとしています。NamedPipeServerStream & NamedPipeClientStream クラスは Mono でサポートされておらず、Unhandle 例外をスローします。誰か助けてくれませんか?
コード:
未処理の例外:
System.IO.IOException: 名前付きパイプの作成エラー: エラー コード -1
/Users/builder/data/lanes/mono-mac-ui-refresh-2-10/2baeee2f/source/bockbuild/profiles/mono の System.IO.Pipes.UnixNamedPipe.EnsureTargetFile (System.String 名) [0x0001f] で-2-10/build-root/mono-2.10.11/_build/mono-2.10.11.git/mcs/class/System.Core/System.IO.Pipes/PipeUnix.cs:131 at System.IO.Pipes .UnixNamedPipeServer..ctor (System.IO.Pipes.NamedPipeServerStream 所有者、System.String pipeName、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeAccessRights 権限、PipeOptions オプション、Int32 inBufferSize、Int32 outBufferSize、HandleInheritability 継承可能性) [0x00012] in /Users/builder/ data/lanes/mono-mac-ui-refresh-2-10/2baeee2f/source/bockbuild/profiles/mono-2-10/build-root/mono-2.10.11/_build/mono-2.10.11.git/ System.IO.Pipes の mcs/class/System.Core/System.IO.Pipes/PipeUnix.cs:265。NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション、Int32 inBufferSize、Int32 outBufferSize、System.IO.Pipes.PipeSecurity pipeSecurity、HandleInheritability 継承性、PipeAccessRights additionalAccessRights) [0x0004b] in /Users/ builder/data/lanes/mono-mac-ui-refresh-2-10/2baeee2f/source/bockbuild/profiles/mono-2-10/build-root/mono-2.10.11/_build/mono-2.10.11. git/mcs/class/System.Core/System.IO.Pipes/NamedPipeServerStream.cs:100 at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション、 Int32 inBufferSize、Int32 outBufferSize、System.IO.Pipes.PipeSecurity pipeSecurity、HandleInheritability 継承性) [0x00000] in :0 at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション、Int32 inBufferSize、Int32 outBufferSize、System.IO.Pipes. PipeSecurity pipeSecurity) [0x00000] in :0 at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション、Int32 inBufferSize、Int32 outBufferSize) [0x00000] in :0 System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション) [0x00000] で:0 at (wrapper remoting-invoke-with-check) System.IO.Pipes.NamedPipeServerStream:.ctor (string,System.IO.Pipes.PipeDirection,int,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions ) ConsoleTestPipeApp1.Program.ListenForPipeServer () [0x00000] で /Users/Vadivelu/Project/Service_Test/ConsoleTestPipeApp1/ConsoleTestPipeApp1/Program.cs:21 で ConsoleTestPipeApp1.Program.Main (System.String[] args) [0x00000] で / Users/Vadivelu/Project/Service_Test/ConsoleTestPipeApp1/ConsoleTestPipeApp1/Program.cs:16 [エラー] 致命的な未処理の例外: System.IO.IOException: 名前付きパイプの作成エラー: System.IO.Pipes.UnixNamedPipe.EnsureTargetFile でのエラー コード -1 (System.String 名) /Users/builder/data/lanes/mono-mac-ui-refresh-2-10/2baeee2f/source/bockbuild/profiles/mono-2-10/build-root/mono 内の [0x0001f] -2.10.11/_build/mono-2.10.11.git/mcs/class/System.Core/System.IO.Pipes/PipeUnix.cs:131 at System.IO.Pipes.UnixNamedPipeServer..ctor (System.IO.Pipes.NamedPipeServerStream /Users/builder/data/lanes/mono-mac-ui-refresh-2 の [0x00012] -10/2baeee2f/source/bockbuild/profiles/mono-2-10/build-root/mono-2.10.11/_build/mono-2.10.11.git/mcs/class/System.Core/System.IO.Pipes /PipeUnix.cs:265 at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション、Int32 inBufferSize、Int32 outBufferSize、System.IO.Pipes.PipeSecurity pipeSecurity、HandleInheritability 継承、PipeAccessRights additionalAccessRights) [0x0004b] in /Users/builder/data/lanes/mono-mac-ui-refresh-2-10/2baeee2f/source/bockbuild/profiles/mono- 2-10/build-root/mono-2.10.11/_build/mono-2.10.11.git/mcs/class/System.Core/System.IO.Pipes/NamedPipeServerStream.cs:System.IO.Pipes の 100。 NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション、Int32 inBufferSize、Int32 outBufferSize、System.IO.PipeSecurity pipeSecurity、HandleInheritability 継承可能性) [0x00000] in :0 at System.IO .Pipes.NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション、Int32 inBufferSize、Int32 outBufferSize、System.IO.PipeSecurity pipeSecurity) [0x00000] in :0 at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、 PipeTransmissionMode TransmissionMode、PipeOptions オプション、Int32 inBufferSize、Int32 outBufferSize) [0x00000] in :0 at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName、PipeDirection 方向、Int32 maxNumberOfServerInstances、PipeTransmissionMode transmissionMode、PipeOptions オプション) [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.IO.Pipes.NamedPipeServerStream:.ctor (string,System.IO.Pipes.PipeDirection,int,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes .PipeOptions) で ConsoleTestPipeApp1.Program.ListenForPipeServer () [0x00000] で /Users/Vadivelu/Project/Service_Test/ConsoleTestPipeApp1/ConsoleTestPipeApp1/Program.cs:21 で ConsoleTestPipeApp1.Program.Main (System.String[] args) [0x00000] で/Users/Vadivelu/Project/Service_Test/ConsoleTestPipeApp1/ConsoleTestPipeApp1/Program.cs:16
multithreading - C#でのマルチスレッドサーバーの実装
名前付きパイプをリッスンしてユーザースペースから実行されるプログラムと対話するコンポーネントを持つWindowsサービスを作成しています。この回答のコードをマルチスレッドサーバー実装のベースとして使用しましたが、以下に再現されているように、タイトなループで呼び出されるProcessNextClientアクションから強いコードの臭いがします。別のストリームの開口部が名前付きパイプにいつ追加されるかを知るには、IOExceptionを繰り返しキャッチして再試行するよりも、本当に良い方法はありませんか?
.net - .NET 名前付きパイプでのデフォルトの待機タイムアウトの指定
クライアントが Win32 CreateFile および WaitNamedPipe メソッドを使用して接続を確立する C# で NamedPipeServerStreams を使用しています。
以前は、サーバーも Win32 であり、CreateNamedPipe() を呼び出すときに、パイプの構築の一部として「DefaultTimeOut」を指定していました。
私が読んだり見たりしたことから、クライアントはこのタイムアウト値を継承し、WaitNamedPipe を呼び出すときにそれを使用することを理解しています。
CreateNamedPipeに関する Microsoft の MSDN ドキュメントには、DefaultTimeOut パラメータに関する次の説明があります。
*nDefaultTimeOut [in] WaitNamedPipe 関数が NMPWAIT_USE_DEFAULT_WAIT を指定する場合のデフォルトのタイムアウト値 (ミリ秒単位)。名前付きパイプの各インスタンスは、同じ値を指定する必要があります。*
.NET NamedPipeServerStream を使用するように変更すると、このデフォルトのタイムアウト値をコンストラクターに渡す (またはそれ以外の方法で) 方法がないように思われ、以前はそうではなかった WaitNamedPipe セマフォでクライアントが定期的にタイムアウトするようになりました。回避したい独自のタイムアウトを指定するようにすべてのクライアントを変更しない限り、.NET でこれを行う方法を見つけることができないようです。.NET NamedPipe コードは、Win32 API を下にラップしているだけなのでしょうか?
.net - リモート クライアントから名前付きパイプ サーバーへのアクセスを許可する
リモート クライアントから名前付きパイプ サーバーにアクセスできるように設定する方法を教えてください。今まで NamedPipes は同じコンピューターのプロセス間通信にのみ使用できると考えていましたが、http: //msdn.microsoft.com/en-us/library/windows/desktop/aa365150%28v=vs.85%に基づいています29.aspx PIPE_ACCEPT_REMOTE_CLIENTS / PIPE_REJECT_REMOTE_CLIENTS を設定して、リモート コンピューターからのアクセスを許可/禁止することで可能になります。.NET でこの機能をセットアップする簡単な方法が見つかりませんでした。PipeSecurity を何らかの方法で使用できると思いますが、簡単な方法が見つかりませんでした。
私の現在のソリューションでは、現在のマシン上の名前付きパイプにすべてのユーザーにアクセスできます。誰かが私のソリューションを改善して、別のマシンからもアクセスできるようにすることはできますか?
ありがとう。
c# - 名前付きパイプ クライアントが unity3d で動作しない
この C# コードを作成して、namedPipeServer と NamedPipeClient を非同期の読み取りと書き込みの設定で相互に接続します。両方のコードは、私が使用している Visual Studio 2010 で完全に実行され、実行時にアプリケーションがフリーズすることなく、読み取りと書き込みがうまく機能します。
しかし、unity3d で実行するクライアント側が必要です。私が遭遇した問題は、Unity3D で実装されたクライアント側のコードにあります。Write_to_Server_Async(string message) を使用すると、サーバー側の読み取りは呼び出されず、Unity3d を終了したときにのみ呼び出されます (通常はプロセスを終了しました)。正確なコードは Visual Studio で完全に機能するため、Unity3D に何か問題があることがわかります。したがって、コードが正しい方法で実装されていることがわかります。ユーザーが手動でスレッドを作成しない限り、unity3d が実際には実際のスレッドを使用しないという話を聞いたことがありますが、それでも問題は解決していません。私の推測では、Unity3D 開発者は .NET ライブラリ 3.5 のバージョンを作成した可能性があります (奇妙に聞こえます (彼らがまだ 4.5 を採用していない理由を説明しています))。BeginWrite は、独自の実スレッドを作成できません。しかし、それがスレッドの問題であるかどうかはわかりません。
現時点では、どなたか適切な説明を考えていただきたいと思います。
unity3d で Debug.WriteLine を UnityEngine.Debug.Log に置き換えてください。
以下は、Client Main メソッドのコードとクラスです。
Asynchronus_NamedPipe_Client クラス
サーバー側の Main メソッドの実装
サーバー側クラス -----
c# - NamedPipeServerStream がクライアント側で開始されたかどうかを確認する方法
NamedPipeClientStream を使用するクライアントと NamedPipeServerStream を使用するサーバーがあります。
クライアントはサーバーの前に起動する可能性があり、clientStream.Connect(timeout) を呼び出すと、期待どおりに TimeoutException が発生します。
例外を防ぐために Connect を呼び出す前に NamedPipeServerStream がリッスンしているかどうかを確認する方法はありますか?
c# - NamedPipeServerStream が最大 1024 バイトを受け取るのはなぜですか?
クライアントとサーバーの NamedPipeStream を使用しています。クライアントからサーバーにデータを送信しています。データは、バイナリ データを含むシリアル化オブジェクトです。
サーバー側がデータを受信すると、クライアントがさらに多くのデータを送信している間、常に最大 1024 サイズになります!! そのため、データをシリアル化しようとすると、次の例外が発生します: "Unterminated string. Expected delimiter: ". パス「データ」、1 行目、位置 1024."
次のように定義されたサーバーのバッファサイズ:
私は使用しています:
読み取り機能:
クライアント側でバッファ サイズを定義または変更できる場所がわかりません。
何か案が?!