問題タブ [tcpclient]

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.

0 投票する
2 に答える
11247 参照

c# - SocketオブジェクトとTcpClientオブジェクトの間で変換することは可能ですか?

これは、差し迫った必要性よりも単に好奇心に基づいた別のC#/。NETの質問です...

インスタンスがSocketあり、それをより高いレベルのTcpClientクラスでラップしたい場合、それは可能であり、どのように実行しますか?

逆に、のインスタンスがある場合TcpClient、基礎となるものを取得することは可能Socketですか?

0 投票する
1 に答える
380 参照

c# - 抽象基本クラスの TcpClient フィールドが常に破棄されている

TcpClient フィールドを持つ抽象基本クラスがあります。

接続をセットアップする方法があります。

そして、データをリクエストするメソッドより:

requestRawData など、他にもいくつかあります...非常に特定のハードウェア通信プロトコルに必要ですが、それはこの質問の一部ではありません。

次に、このクラスから派生したクラスがあり、基本クラスのメソッドをオーバーライドします。

コードは例外なく動作しますが、setupConnection メソッドが呼び出されるたびに TcpClient インスタンス (tcpClient) が破棄されているように見えるため、新しいインスタンスが作成され、connect メソッドが再度呼び出され、通信プロセスが非常に遅くなります。

注: 子クラスのパブリック メソッドは requestData メソッドを呼び出し、このライブラリを使用して開発者から多くの詳細を抽象化します。

SetDevicePower(byte PowerLevel)、QueryDeviceName() など...

次のようなコード:

connect メソッドが 2 回呼び出される原因となります...呼び出しの間に破棄されるのはなぜですか?

0 投票する
1 に答える
2259 参照

c# - TcpListener.AcceptTcpClient は重要でない例外をスローしますか?

私のアプリケーションでは、現在、AcceptTcpClient (または EndAcceptTcpClient) が例外をスローするとリッスンを停止しています。通常、リスナーを停止すると (ソケット エラー 10004)、またはネットワーク アダプターを切断すると、例外がスローされます。

しかし、クライアントが原因で、例外を無視 (またはログに記録) して AcceptTcpClient の呼び出しを続行する必要がある例外はありますか?

0 投票する
3 に答える
3203 参照

c# - C#FileStreamで「Zip」ファイルを読み取る

TCPClientを使用してリモートコンピューターとのネットワーク接続を確立するプログラムを作成しました。これを使用して、ファイルを100kチャンクでリモート.netアプリケーションに転送し、次にそれらをハードドライブに書き込みます。ZIP ファイルを除いて、すべてのファイル転送は正常に機能します。再構築されたファイルは常に 98K であることに注意してください...ZIP ファイルには、この方法での処理を妨げる暗い秘密があります。ここでも、画像、xls、txt、chm、exe など、他のすべてのファイル転送は正常に機能します。

混乱している

0 投票する
5 に答える
15396 参照

c# - ターゲット マシンがアクティブに拒否したため、接続できませんでした

C# で単純な Hello World TCP/IP クライアント サーバー アプリを作成していますが、クライアントを接続できません。誰でも追加のトラブルシューティング手順を提供できますか? アイデアが枯渇し始めている...

コードの関連セクションは次のとおりです。

サーバ:

クライアント:

クライアント マシンからサーバーに ping を実行できますが、バインドされたポートを使用してサーバーに telnet で接続できません。私はさまざまなポートを試しました (いくつかは 8000 代前半で、いくつかは 40000 前後です)。両方のシステムで Windows ファイアウォールを無効にしました。システムは、インターネット上にないルーターに接続されています。指定されたポートで着信要求をサーバーマシンに転送するようにポート転送を設定して、または設定せずに試しましたが、効果はありませんでした。

私がトラップできた唯一の例外は、クライアントによってスローされます。

ターゲット マシンがアクティブに拒否したため、接続できませんでした。

を確認しましたInnerExceptionが、何もないようです。これが基本的な例外です。それは正しいでしょうか?

他に何を見ればよいかわからない - 追加のトラブルシューティング手順が役立つ場合があります。

ありがとう!

0 投票する
6 に答える
3862 参照

c# - 「InvalidOperationException」を取得せずにC#で「using」を使用するにはどうすればよいですか?

正常に動作する次のコードを置き換えようとしています

しかし、私はInvalidOperationExceptionことわざを取得します

接続されていないソケットでの操作は許可されていません。

何が問題で、どうすれば修正できますか?

詳細:私はこのコードの前にoc.Connectを持っているので、接続されています。初めて使用したいときは正常に動作します。その後、その例外が発生します。少し遊んで、今私は得る:

破棄されたオブジェクトにアクセスできません。\r\nオブジェクト名: 'System.Net.Sockets.Socket'。

0 投票する
1 に答える
1406 参照

c# - C# でこの TCP 接続を処理するための推奨される方法は何ですか?

IR コマンドをルーティングする目的で GlobalCache GC-100-12 と通信するサーバー アプリケーション (シングルトンの単純な .NET コンソール アプリケーション) があります。ローカル ネットワーク上のさまざまな .NET WinForm クライアントがサーバー アプリケーションに接続し、ASCII コマンドを送信します。サーバー アプリケーションは、これらの ASCII コマンドをキューに入れ、TCP 接続を介して GC-100-12 に送信します。

私の質問は、サーバーの観点からこの接続を処理する最良の方法は何ですか? 次の 2 つの方法が考えられます。

  1. 個々の要求ごとに新しい TcpClient を作成して開きます。リクエストが完了したら、TcpClient を閉じます。

  2. サーバーの起動時に 1 つの TcpClient を作成して開き、(必要に応じて) キープアライブを使用して、サーバー オブジェクトの存続期間中、接続を開いたままにします。

リクエストごとに新しい TcpClient を作成するオーバーヘッドが気になるので、この質問をします。高額な手術ですか?これは悪い習慣ですか?

現在、私は #1 を実行しており、各送信の結果をコンソールに出力しています。時折、一部の接続がタイムアウトし、コマンドがルーティングされないことがあります。これは、毎回新しい TcpConnection を作成するオーバーヘッドが原因なのか、それとも何か他のことが原因なのか疑問に思っていました。

接続が切断された場合は再作成する必要があり、その状況を処理するにはもう少しコードが必要になるため、#2 はより複雑であることがわかります。

これに関する一般的なアドバイスを探しています。TcpClient クラスを扱った経験はあまりありません。

0 投票する
1 に答える
4018 参照

ssl - TCPサーバー上のSslStreamは、RemoteCertificateNotAvailableを使用してクライアント証明書を検証できません

この質問はすべてSslPolicyError.RemoteCertificateNotAvailableエラーの解決に関するものです。

もう一方の端にSSLStreamとTCPクライアントを備えたTCPサーバーを開発しました。

サーバーを次のように認証します。

クライアントを次のように認証します。

からクライアント証明書を読み込んでいますTrusted Publishers - Local Machine

両方とも同じマシンで実行されています。

信頼できる発行元ストアではなく、.cerファイルと.pfxファイルからクライアント証明書をロードしてみました。ただし、サーバーのクライアント(リモート)証明書バリデーターのコールバックSslPolicyErrorsは、RemoteCertificateNotAvailableエラーがあることを検出して失敗します。

0 投票する
2 に答える
2064 参照

delphi - httpプロキシを介してTTcpClientに接続します

delphiのhttpプロキシサーバーを介してサーバーに接続するにはどうすればよいですか?SOCKS5プロキシはどうですか?

Googleには何の提案もありません!