問題タブ [socketserver]

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 投票する
1 に答える
13750 参照

.net - TcpListener: すべてのインターフェースで特定のポートをリッスンする方法は?

を構築するための 3 つのオーバーロードがありますTcpListener

特定のポートでリッスンしたいのですが、使用可能なすべてのインターフェイスでリッスンします。それを行うために利用できるオーバーロードがありましたが、 としてマークされていobsoleteます。

TcpListener.NET 内のすべてのインターフェイスで特定のポートをリッスンするための新しい優先/廃止されていない方法は何ですか?


参考までに、IPEndPointは次のとおりです。

これが 3 番目のオーバーロードです。そして、IPAddressコンストラクターとして次のように取ります。

  • abyte[]
  • Int64
  • byte[]と_Int64
0 投票する
1 に答える
443 参照

linux - リモートエンドがsendシステムコールを使用してソケットを閉じたかどうかを知る方法は?

リモート エンドが接続を閉じた場合でも、send() システム コールは初めて成功します。もう一度送信すると、sigpipe が生成されます。リモートエンドが接続を閉じたかどうかを知るために recv システムコールを使用したくありません。

リモートエンドが send システムコールのみを使用して接続を閉じたかどうかを検出する方法を教えてもらえますか?

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

python - Python socketserver リクエスト ハンドラの単体テストの書き方は?

socketserver リクエスト ハンドラの単体テストを作成するにはどうすればよいですか? 次のコードを使用しようとしましたが、問題が発生しました。

このように、複数のテスト関数を使用しようとすると

エラーが発生します

self.server = ...テストサーバーにallow_reuse_address.

編集:質問を簡単にするために、最初に投稿した2つのエラーのうちの1つを削除しました。

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

python - 終了/クラッシュ時にサーバーソケットを閉じる

Pythonでソケットを使用する方法を学んでいますが、プログラムがクラッシュしたり、Ctrl + Cキーを押したりすると、サーバーソケットがポートでリッスンしたままになることがよくあります。これにより、プログラムが再起動したときにそのポートでリッスンすることが明らかに停止するため、変更を続ける必要があります。

どこかで socket.close() を実行する必要があると思いますが、どこで?

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

python - リスト内の切断されたクライアントをチェックしていますか?Pythonで

さて、これは私が私のpythonソケットサーバーでやろうとしていることです。
サーバーがデータを送信する方法を模索しています。ただし、使用されているアドレスのリストで切断されたクライアントが見つかった場合。リストから削除します。また、データの送信にUDPを使用しています。これはゲームサーバー用です。ある種のようなもの:

これが私がやろうとしていることのアイデアを与えるのに役立つことを願っています。「socket.selectを使ってみませんか?」と言う前に さて、私が試したところ、socket.selectでUDPを動作させることができませんでした。そして、私がゲームエンジンで行っているようにTCPを実行すると(私はblenderを使用しています)、recv()を実行するとフリーズします。

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

java - SocketServer を使用して Java でクライアントとの通信を開始するにはどうすればよいですか?

まず、私はソケット通信を使い始めたばかりで、まだわからないことがいくつかあります。Java での Socket 通信の基本を理解しているので、ここでガイドを探します。

さて、私の問題についてですが、リモート アプリケーションとのサーバー ソケット通信を構築する必要があります。私のアプリケーションでは、他のアプリケーションのクライアントが私と通信する serverSocket を実行します。この通信用に実装されたプロトコルの一部は、このソケットを常に開いておく必要があることです。これにより、両方のアプリケーション間で 1 つの永続的な通信チャネルが提供されます。

これまでのところ、非常に疎遠なことはありません。問題は、mi serverSocket を使用してクライアントとの会話を開始する必要があることです。これは、クライアントが要求することなく、serverSocket がクライアントに何らかの情報を送信する必要があることを意味します。

定義のために、serverSockets はクライアントがそれらとの接続を開くのを待っているスレッドであることを理解しています。この接続が確立されると、アプリケーション間の会話は通常、クライアントからの何らかの要求 (つまり、ENQ 文字) で始まり、情報交換を開始します。これは、データを検証、送受信するために実装されたプロトコルがある場合です。それ以外の場合、情報は十分な検証と制御なしにクライアントによって送信されます。

通常、mi アプリケーションが Client を使用してリモート アプリケーションの serverSocket と通信できれば、問題はより自然な方法で処理されます。しかし、そうではありません。リモート アプリケーションは serverSocket を持つことができず、Client しか持つことができません (理由は聞かないでください。これはビジネス パートナーのアプリケーションであり、私自身のアプリケーションではありません。今のところ、彼らは通信スキームを変更するつもりはありません)。

これを念頭に置いて、私の質問は次のとおりです。実行中および待機中の serverSocket を使用して、アプリケーションのプロセスが必要なときに、アプリケーションからリモート クライアントに情報を送信する方法はありますか? アプリケーションの 3 番目の Bean から serverSocket のオープン ソケットを呼び出して書き込む方法を教えてください。

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

python - PythonのSocketServerでクライアントのName属性を取得するにはどうすればよいですか?

RequestHandler(SocketServer.BaseRequestHandler)サーバーへの着信接続を処理するためにクラスを使用しています。

このサーバーにデータを送信する属性として格納されているクライアントの名前を取得しようとしていますが、現時点self.client_addressでは、のようなタプルを返すかどうかを尋ねるだけで取得できますName of client that sent request: ('127.0.0.1', 57547)

接続を開始したオブジェクトの属性を要求する方法はありますか?

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

python - このソケット接続で送受信が 1 回しか許可されないのはなぜですか?

背景
私は、データへの同時接続とエコーバックを許可しようとしている単純なソケットサーバーのセットアップを持っています。クライアント側はいくつかのスレッドを起動し、それぞれがサーバーへの独自の接続を確立します。これは、socket.send() 呼び出しでは正常に機能しますが、後続のすべての呼び出しで、「ピアによる接続のリセット」または「パイプの破損」が発生します。リセットと壊れたパイプを切り替える変更が見つからないことに注意してください。ここで解決策を探しましたが、何を検索すればよいかわからないのではないかと心配しています。

これについて間違った方法で行っていますか、それともセットアップで何かを見落としていますか?

サーバ

クライアント

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

python - BaseRequestHandler クラスをステートフルにする方法はありますか?

短い質問以下の例を使用して、の実際のインスタンスを BaseRequestHandler クラスと
共有する Pythonic の方法はありますか?my_object

背景
定義により、BaseRequestHandler クラスは要求ごとに新しいインスタンスを作成します。handle()このため、関数からProtocolInterfaceインスタンスにデータを戻す方法の解決策を見つけるのに苦労しています。handle()stdout への出力以外で 何かを行う必要がある場合、これは間違ったアプローチである可能性があることに注意してください。

現時点では、グローバル変数my_objectが渡され、頻繁に変更されることが予想されるため、グローバル変数が機能するとは考えていません (これが、handle()それを見る必要がある理由です。クライアントの例 (偽のデータを送信する) を見るには、私の他の SO の質問を参照してください。私が直面している最大の問題は、ソケットサーバーがバックグラウンド スレッドで実行されていることだと思います。

やりたいことの例

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

python - SocketServer への SSL サポートの追加

に基づくサーバーがありますThreadingTCPServer。次に、そのサーバーに SSL サポートを追加します。SSL がないと正常に動作しますが、SSLv3 ではクライアントをサーバーに接続できず、常に例外がスローされます: Error 111 Connection Refused. エラーは、そのポートに SSL サーバーがありません。

ここ Stackoverflow で見つけた例に基づいて、SSL サポートを追加しました。これが私のコードです:

サーバ:

クライアント:

キーと証明書ファイルは、オープン SSL を使用して作成されます。誰かが私に何が問題なのか教えてくれることを願っています。

ご協力いただきありがとうございます

よろしくパトリック