問題タブ [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 投票する
2 に答える
1213 参照

android - Adobe Flex/Air ServerSocket: Socket クラスからのリモート接続

Flash/Flex のせいで頭がおかしくなったので、質問しなければなりません。

デスクトップの Air 環境で ServerSocket クラスを使用して、モバイル クライアント (Air for mobile) をリッスンするサーバーをセットアップしています。これをデバッグモード (Flash Builder) でテストしたところ、すべて正常に動作しました: ServerSocket が 127.0.0.1:8889 をリッスンする (ローカルマシン) --> 127.0.0.1 への接続、ポート 8889 がモバイルに設定されている (ローカルマシン) -->小切手。

そのため、Android スマートフォン (WiFi 接続) にアプリをインストールし、マシンの IP とポートを入力しましたが、接続できませんでした: ServerSocket to listen to 127.0.0.1:8889 (local machine) --> Connection to 192.168.2.101,モバイルでのポート 8889 セットアップ --> 機能していません。

テストのためだけに、簡単な Java サーバーをセットアップし、Java SocketServer に接続すると、うまくいきました。したがって、問題は Air 環境の SocketServer クラスにあると思います。

あなたはなにか考えはありますか?皆様のお役に立てれば幸いです。

明けましておめでとう!

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

c# - アプリがシャットダウンした後もポートがまだリッスンされているのは悪いジュジュですか?

私のアプリは特定のポートでソケットメッセージをリッスンします。コマンドラインで「netstat-a」を介してリッスンしていることがわかります。

アプリをシャットダウンしても、「netstat -a」を再実行すると、マシンはまだそのポートをリッスンしています。

これは問題ですか?

後でアプリを再起動すると、無意識のうちにクラッシュするので、多分そうです。

どうすればリスニングを停止させることができますか?

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

python - SocketServerインスタンスとのPythonマルチプロセッシング通信

私には一連のプロセスがあります。それらをA、B、Cと呼びましょう。これらは、相互に通信する必要があります。AはBおよびCと通信する必要があります。BはAおよびCと通信する必要があります。CはAおよびBと通信する必要があります。A、B、およびCは、異なるマシンまたは同じマシンに配置できます。

私の考えは、ソケットを介して通信し、それらがすべて同じマシン上にある場合は「localhost」を使用することでした(たとえば、ポート11111のA、ポート22222のBなど)。このように、非ローカルプロセスはローカルプロセスのように扱われます。そのためには、A、B、CのそれぞれにSocketServerインスタンスを設定し、それぞれが他の2つのアドレスを知っていると思いました。たとえばAからBへの通信が必要な場合は常に、AはBへのソケットを開き、データを書き込みます。次に、Bの常時稼働しているサーバーがデータを読み取り、後で必要になったときに使用できるようにリストに保存します。

私が遭遇している問題は、保存された情報がfinish_requestメソッド(リスニングを処理している)と__call__メソッド(トークを処理している)の間で共有されていないことです。(サーバークラスは、他の何かのために必要なので呼び出し可能です。それが問題に関連しているとは思いません。)

私の質問は、これは私が想像したように機能するでしょうか?、、multiprocessingおよびはすべて同じマシンthreadingsocketserver一緒にうまく機能しますか?プロセス間で通信するために他のメカニズムを使用することに興味はありません(QueueまたはなどPipe)。私はそれらで実用的な解決策を持っています。効率が悪くても、このアプローチが可能かどうか知りたいです。そして、もしそうなら、それが機能するのを妨げている私は何を間違っているのですか?

この問題を説明する最小限の例を以下に示します。

この例の出力を見ると、次の3種類の印刷があります。

「MID」は、そのid場合のmigrants両端キューです。「From」と「To」は、送信を送受信するポートです。そして、私は今、データをランダムな16進文字列に設定しているので、個々の送信を追跡できます。

同じMIDでも、ある時点でサイズがゼロ以外と表示され、後でサイズが0と表示される理由がわかりません。呼び出しはマルチスレッドです。最後の2つのループの代わりにこれらの行を使用するforと、システムは期待どおりに機能します。

それで、それを壊すマルチプロセッシングバージョンで何が起こっているのでしょうか?

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

python - python socketserver がときどきメッセージの送信 (および受信?) を停止する

私が書いたソケットサーバーで、ソケットサーバーが使用するポートの1つでデータの送受信を停止するように見える問題が発生しました(他のポートはデータを正常に処理し続けます)。興味深いことに、1 分 (または最大で 1 時間程度) 待機した後、socketserver は観察可能な介入なしでメッセージの送受信を再開します。

私はEventletソケットフレームワーク、python 2.7を使用しています。すべてがubuntu awsインスタンスで実行され、外部アプリがソケットサーバーへの永続的な接続を開きます。

私が行ってきたいくつかの読書から、ソケットサーバーを正しく実装していないようです。http://docs.python.org/howto/sockets.htmlによると:

ソケットの基本的な真実: メッセージは、固定長 (yuck)、区切り記号 > > (肩をすくめる)、メッセージの長さを示す (はるかに良い)、または接続をシャットダウンして終了する必要があります。

ここで固定長メッセージを使用しているかどうかは完全にはわかりません (またはそうですか?)

これは私が自分のデータを受け取る方法です:

「sock」は、listener.accept() 関数によって返されるソケット オブジェクトです。

socket_handler 関数は次のように呼び出されます。

私の実装は誰かに間違っているように見えますか? 基本的に固定長の会話プロトコルを実装していますか? 問題を調査したり、コードをより堅牢にするために何ができますか?

前もって感謝します、

T

0 投票する
0 に答える
455 参照

c# - アプリを強制的に閉じて、TcpListener のリッスンを停止しようとしています - stackOverflow

デュアルロール アプリ (別のマシンで実行されている "サーバー" としての役割) を閉じると、実際にはシャットダウンに失敗します (アプリを閉じた後もタスク マネージャーの "プロセス" リストに残っています)。

TcpListener クラスがまだリッスンしているために「ライブ」のままなのか、アプリが実際にシャットダウンしていないために TcpListener クラスがまだリッスンしているのかはわかりません。

そこで、次の 2 つのコードを追加しました。

1) ここの最後の行 (listener.Stop()):

...と:

2)

Close を呼び出すときにスタック オーバーフローが発生するのはなぜですか?

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

python - ルーターの背後から公開されているTCPServerを作成する

Python 2.7.2 Windows732ビット

この質問の前に、私はネットワークプログラミングにかなり慣れていません。Pythonの組み込みSocketServerを使用して単純なサーバーとクライアントを作成しました

これは、ホストが「localhost」であり、クライアントとサーバーが同じマシン上にある場合に正常に機能します。ただし、インターネット経由でサーバーにアクセスできるようにしたい。私のコンピューターはルーターの後ろにあります。pystun(下記)を使用してコンピューターのパブリックIPアドレスを確認していますが、接続できません。私は少し調査を行いましたが、プログラムがポートを開くと、ルーターがそれを認識し、トラフィックをそのコンピューターに転送することを理解しています。これは起こっていないようです。ファイアウォールを無効にしても同じ結果が得られます。ポートフォワーディングを使用する必要がありますか?ほとんどのアプリケーションは、ルーターの背後からどのように通信できますか?ここでwin32comを介したパンチャー(以下のソース)とポートフォワーディングを調べました。私は正しい方向に私を向けてくれる人を探しています。プログラムでサーバーにルーターの背後からリスニングポートを開いてトラフィックを転送させるにはどうすればよいですか?

パンチャーソース:https ://coherence.beebits.net/svn/trunk/Puncher/puncher/base.py pystun:http ://pypi.python.org/pypi/pystun

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

python - UDP SocketServer を停止します

UDP SocketServer を作成しています。UDP 接続を閉じるよりも、クライアント側から終了メッセージを受信した場合にシャットダウンしたいと考えています。

メッセージを受け取ったのでは表示されBeginますが、Finishedは表示されません。このスレッドを終了するにはどうすればよいですか?

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

c++ - ピアによってリセットされた Flash クライアント C++ サーバー接続

C++ ソケット サーバー、C++ サーバーと通信する Flash クライアント、および crossdomain.xml を Flash クライアントに渡す Python ソケット サーバーを含むアプリケーションがあります。C++ サーバーは REST 操作を呼び出し、その結果を Flash クライアントに返します。これらはすべて、Linux 64 ビット サーバー (Debian) でホストされています。

一部のユーザーについては、ゲーム サーバーがソケットからの読み取りを試行するときに (recv() で)、多くの「ピアによる接続のリセット」が発生します。Flash ポリシー サーバーにも、「ピアによる接続のリセット」による同様の量があります。

この問題の理由は何か、アイデア、リソースを探しています。確かに、これはサーバーの過負荷によるものではありません-ユーザーの場合-3人のユーザーの場合もあれば、300人のユーザーの場合もあります.

プライベートサーバーでテストしましたが、状況は同じです.

問題を解決するために私たちが疑ったこと:

  • C++ サーバーおよびソケットとの通信に関する Flash クライアントの問題。
  • ネットワークの問題
  • いくつかの組み合わせの tcp オプション

私たちがやったこと:

  • クライアントからセキュリティと IO エラーをキャッチします。そこにログを記録するだけです:(

私たちが考えていること:

  • C++ サーバーの優先順位を -5 または -10 に変更します。これにより IO 操作が促進されることを願っています。

「pearによる接続のリセット」の理由はわかっています-stackOverFlowとgoogleでそれらの多くをチェックしています-しかし、この問題を克服する方法が見つかりません。

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

python - クライアントにデータを送信する方法は?

通常のソケットでデータを送信しようとしましたが、動作します。ただし、私が取り組んでいるコードは socketServer を使用しており、変更できません。サーバーにデータを送信する例が見つかりません。どうやってやるの?

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

python - 基本的なサーバー/クライアントソケット実装のサーバーには、「socket」と「socketserver」のどちらを使用するのが良いですか?

ソケットサーバーの方が使いやすいと読んだことがありますが、ソケットについて学んでいる人にとっては、ソケットとソケットサーバーのどちらがより速く、初心者にやさしいでしょうか? ストリーム ソケットを使用した非常に基本的なクライアント/サーバーのセットアップ用。(パイソン)