問題タブ [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.
.net - TcpListener: すべてのインターフェースで特定のポートをリッスンする方法は?
を構築するための 3 つのオーバーロードがありますTcpListener
。
public TcpListener(int port);
(廃盤)public TcpListener(IPEndPoint localEP)
public TcpListener(IPAddress localaddr, int port)
特定のポートでリッスンしたいのですが、使用可能なすべてのインターフェイスでリッスンします。それを行うために利用できるオーバーロードがありましたが、 としてマークされていobsolete
ます。
TcpListener
.NET 内のすべてのインターフェイスで特定のポートをリッスンするための新しい優先/廃止されていない方法は何ですか?
参考までに、IPEndPoint
は次のとおりです。
これが 3 番目のオーバーロードです。そして、IPAddress
コンストラクターとして次のように取ります。
- a
byte[]
- を
Int64
byte[]
と_Int64
linux - リモートエンドがsendシステムコールを使用してソケットを閉じたかどうかを知る方法は?
リモート エンドが接続を閉じた場合でも、send() システム コールは初めて成功します。もう一度送信すると、sigpipe が生成されます。リモートエンドが接続を閉じたかどうかを知るために recv システムコールを使用したくありません。
リモートエンドが send システムコールのみを使用して接続を閉じたかどうかを検出する方法を教えてもらえますか?
python - Python socketserver リクエスト ハンドラの単体テストの書き方は?
socketserver リクエスト ハンドラの単体テストを作成するにはどうすればよいですか? 次のコードを使用しようとしましたが、問題が発生しました。
このように、複数のテスト関数を使用しようとすると
エラーが発生します
self.server = ...
テストサーバーにallow_reuse_address
.
編集:質問を簡単にするために、最初に投稿した2つのエラーのうちの1つを削除しました。
python - 終了/クラッシュ時にサーバーソケットを閉じる
Pythonでソケットを使用する方法を学んでいますが、プログラムがクラッシュしたり、Ctrl + Cキーを押したりすると、サーバーソケットがポートでリッスンしたままになることがよくあります。これにより、プログラムが再起動したときにそのポートでリッスンすることが明らかに停止するため、変更を続ける必要があります。
どこかで socket.close() を実行する必要があると思いますが、どこで?
python - リスト内の切断されたクライアントをチェックしていますか?Pythonで
さて、これは私が私のpythonソケットサーバーでやろうとしていることです。
サーバーがデータを送信する方法を模索しています。ただし、使用されているアドレスのリストで切断されたクライアントが見つかった場合。リストから削除します。また、データの送信にUDPを使用しています。これはゲームサーバー用です。ある種のようなもの:
これが私がやろうとしていることのアイデアを与えるのに役立つことを願っています。「socket.selectを使ってみませんか?」と言う前に さて、私が試したところ、socket.selectでUDPを動作させることができませんでした。そして、私がゲームエンジンで行っているようにTCPを実行すると(私はblenderを使用しています)、recv()を実行するとフリーズします。
java - SocketServer を使用して Java でクライアントとの通信を開始するにはどうすればよいですか?
まず、私はソケット通信を使い始めたばかりで、まだわからないことがいくつかあります。Java での Socket 通信の基本を理解しているので、ここでガイドを探します。
さて、私の問題についてですが、リモート アプリケーションとのサーバー ソケット通信を構築する必要があります。私のアプリケーションでは、他のアプリケーションのクライアントが私と通信する serverSocket を実行します。この通信用に実装されたプロトコルの一部は、このソケットを常に開いておく必要があることです。これにより、両方のアプリケーション間で 1 つの永続的な通信チャネルが提供されます。
これまでのところ、非常に疎遠なことはありません。問題は、mi serverSocket を使用してクライアントとの会話を開始する必要があることです。これは、クライアントが要求することなく、serverSocket がクライアントに何らかの情報を送信する必要があることを意味します。
定義のために、serverSockets はクライアントがそれらとの接続を開くのを待っているスレッドであることを理解しています。この接続が確立されると、アプリケーション間の会話は通常、クライアントからの何らかの要求 (つまり、ENQ 文字) で始まり、情報交換を開始します。これは、データを検証、送受信するために実装されたプロトコルがある場合です。それ以外の場合、情報は十分な検証と制御なしにクライアントによって送信されます。
通常、mi アプリケーションが Client を使用してリモート アプリケーションの serverSocket と通信できれば、問題はより自然な方法で処理されます。しかし、そうではありません。リモート アプリケーションは serverSocket を持つことができず、Client しか持つことができません (理由は聞かないでください。これはビジネス パートナーのアプリケーションであり、私自身のアプリケーションではありません。今のところ、彼らは通信スキームを変更するつもりはありません)。
これを念頭に置いて、私の質問は次のとおりです。実行中および待機中の serverSocket を使用して、アプリケーションのプロセスが必要なときに、アプリケーションからリモート クライアントに情報を送信する方法はありますか? アプリケーションの 3 番目の Bean から serverSocket のオープン ソケットを呼び出して書き込む方法を教えてください。
python - PythonのSocketServerでクライアントのName属性を取得するにはどうすればよいですか?
RequestHandler(SocketServer.BaseRequestHandler)
サーバーへの着信接続を処理するためにクラスを使用しています。
このサーバーにデータを送信する属性として格納されているクライアントの名前を取得しようとしていますが、現時点self.client_address
では、のようなタプルを返すかどうかを尋ねるだけで取得できますName of client that sent request: ('127.0.0.1', 57547)
。
接続を開始したオブジェクトの属性を要求する方法はありますか?
python - このソケット接続で送受信が 1 回しか許可されないのはなぜですか?
背景
私は、データへの同時接続とエコーバックを許可しようとしている単純なソケットサーバーのセットアップを持っています。クライアント側はいくつかのスレッドを起動し、それぞれがサーバーへの独自の接続を確立します。これは、socket.send() 呼び出しでは正常に機能しますが、後続のすべての呼び出しで、「ピアによる接続のリセット」または「パイプの破損」が発生します。リセットと壊れたパイプを切り替える変更が見つからないことに注意してください。ここで解決策を探しましたが、何を検索すればよいかわからないのではないかと心配しています。
これについて間違った方法で行っていますか、それともセットアップで何かを見落としていますか?
サーバ
クライアント
python - BaseRequestHandler クラスをステートフルにする方法はありますか?
短い質問以下の例を使用して、の実際のインスタンスを BaseRequestHandler クラスと
共有する Pythonic の方法はありますか?my_object
背景
定義により、BaseRequestHandler クラスは要求ごとに新しいインスタンスを作成します。handle()
このため、関数からProtocolInterface
インスタンスにデータを戻す方法の解決策を見つけるのに苦労しています。handle()
stdout への出力以外で 何かを行う必要がある場合、これは間違ったアプローチである可能性があることに注意してください。
現時点では、グローバル変数my_object
が渡され、頻繁に変更されることが予想されるため、グローバル変数が機能するとは考えていません (これが、handle()
それを見る必要がある理由です。クライアントの例 (偽のデータを送信する) を見るには、私の他の SO の質問を参照してください。私が直面している最大の問題は、ソケットサーバーがバックグラウンド スレッドで実行されていることだと思います。
やりたいことの例
python - SocketServer への SSL サポートの追加
に基づくサーバーがありますThreadingTCPServer
。次に、そのサーバーに SSL サポートを追加します。SSL がないと正常に動作しますが、SSLv3 ではクライアントをサーバーに接続できず、常に例外がスローされます: Error 111 Connection Refused
. エラーは、そのポートに SSL サーバーがありません。
ここ Stackoverflow で見つけた例に基づいて、SSL サポートを追加しました。これが私のコードです:
サーバ:
クライアント:
キーと証明書ファイルは、オープン SSL を使用して作成されます。誰かが私に何が問題なのか教えてくれることを願っています。
ご協力いただきありがとうございます
よろしくパトリック