問題タブ [tcpchannel]
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.
.net - 特定のポートで tcp リモート処理チャネルを開く
複数の同時ユーザーがアプリを実行および実行し、それぞれが着信コールバック イベント メッセージを表示できる必要があるターミナル サーバーで実行されるアプリケーションで、.Net Remoting コールバック用の tcp ポートを開きたいと考えています。現在、ポートを開いてチャンネルをアプリに登録しようとすると、次を使用しています。
これは最初のユーザーに対しては機能しますが、2 番目の同時ユーザーがユーザー セッションでアプリを起動すると、.Net コードに ChannelServices.RegisteredChannels
は最初のユーザーが開いたチャネルは含まれませんが、もちろんコード行
異なるユーザー セッションであっても、同じマシンの同じポートで 2 つのチャネルを開くことができないため、失敗します。
どうすればいいですか?特定のポートがすでに開いているかどうかを検出できたとしても、あるユーザー セッションのアプリケーションは、別のユーザー セッションから作成されたチャネルで着信イベント メッセージを表示できますか??
remoting - .NET Remoting RegisterWellKnownServiceType と特定のチャネルが使用可能な複数のチャネルがある場合
リモーティング サーバー上のよく知られたサービスを、利用可能なすべてのチャネルではなく、特定のチャネルに登録できるかどうかを知りたいです。
私のコードは次のとおりです。
次のコードを使用して、リモーティング サーバーに 2 つの個別の tcpchannels を作成しました。
次に、次のように2つのリモートオブジェクトをホストしました
クライアントでは、Activator.GetObject(...) を介してリモート オブジェクトを呼び出します。
つまり、uri ポートを 1688 に設定しても 1689 に設定しても、リモート オブジェクトを取得できます。
私がやりたいことは、サーバーが 1 つのチャネルで特定のオブジェクトをホストし、別のチャネルで別のオブジェクトをホストすることです。これはできますか?
.net - .NET Remoting での予期しない 2 番目のリッスン ポート
私たちは .NET Remoting の熱心なユーザーであり、最近、すべてのサーバー プロセスに2 つのアクティブなリッスン ポートがあり、netstat とリソース モニターに表示されることに気付きました。コードで定義済みのポートに1 つのTcpChannelのみを登録しており、2 番目の (明らかにランダムに割り当てられた) リッスン ポートが何であるかを判断できません。誰かがこれをカバーするいくつかの技術文書を助けたり、指摘したりできますか? 私は今日まで何も見つけることができませんでした。
どうもありがとう。
iis - TCPChannel を使用した SSL 経由の .NET リモート処理
.NET Remoting を SSL で保護する必要があります。TCPChannel を使用していますが、HTTPChannel に切り替えて IIS を使用して SSL を追加することができません。
したがって、私が理解したことは、クライアント/サーバーに出入りするストリームを暗号化する独自のシンクを作成する必要があるということです。そのために、MSDN で良い記事を見つけました: http://msdn.microsoft.com/en-us/magazine/cc300447.aspx。ただし、その記事はクリプト、ハンドシェイクなどを開発しています。
「車輪の再発明」はしたくありません。このロジックを自分で開発するとき、間違いを犯すことを恐れています。私はむしろ、私のためにそれを行ういくつかの SSL 実装 (SslStream や OpenSSL など) を使用したいと考えています。
TCPChannel を使用して .NET Remoting で SslStream または OpenSSL を使用できますか? 簡単な使い方を教えてください。
ご協力ありがとうございました。
c# - Monitor.Wait 外部ロック {} - 動作中
だから、私はTcpChannelsを使用してさまざまなクライアントとサーバーを巻き込むプロジェクトを開発しています
また、サーバーをフリーズする特定の操作が 1 つあります。サーバーが遅く見えるようにします。フリーズが解除されるまで、サーバーはリモート呼び出しに応答しません。私はこれをロック、monitor.wait、およびmonitor.pulseで行います
問題は、チャネルの「タイムアウト」プロパティを明示的に定義したにもかかわらず、フリーズしたサーバーではいずれにしても有効期限が切れないことです。
簡単な例を次に示します。
サーバー :
クライアント:
私のコンピューターでは、クライアント側の呼び出しは期限切れになりません
私が絶望的な暫定的なlock (this)
声明を削除するまで
そして、それは働き始めました!SocketException
しかし今、私は理由を理解することがMonitor.wait
できます
これが私のコンピューターで機能するのはなぜですか? 私は他の人で試しましたが、私はこの問題を抱えていませんでした
編集
実際、他のコンピューターではタイムアウト例外を取得できませんが、ロック外でモニターを呼び出すと同期例外が発生します
spring - Spring Integration - TCP アウトバウンド チャネルは、各行の最後に不要な CRLF を追加します
次のコードを使用して大きなファイルを読み取り、バッファごとに TCP 接続バッファを介してファイルの内容を送信しています。各送信の最後に、TCP チャネルは CRLF 文字を追加します。追加しない限り、これを結果に表示したくありません。
新しい行が追加されたサンプル出力。(どちらのバッファも巨大です。各バッファの最後で問題を引き起こしている行だけを説明しました)
バッファーワン入り
素早い茶色のキツネが怠け者の犬を飛び越えます
素早い茶色のキツネが怠け者の犬を飛び越えます
速い茶色のキツネが飛び越えます
バッファ 2 の内容
怠惰な犬
不要な CRLF がない場合、出力で 1 行が 2 つに分割されるという問題は発生しません。