問題タブ [serversocket]
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.
linux-kernel - UNIXドメインソケットでUDPのパスを構成するにはどうすればよいですか?
私はソケットプログラミングに不慣れです。DATAGRAMを使用してUNIXドメインソケットを確立しようとしています。しばらくの間、 struct sockaddr_unでsun_pathの構成に関する情報を調べましたが、私を助けるのに十分なソースがないようです。
unix_socket.c(ソケット接続用のインターフェイスを提供)、udp_server.c、およびudp_client.cの3つのファイルを作成しました。これらはすべて、ディレクトリ「/ home/Socket」にあります。sun_pathを「home/Socket」に設定すると、サーバー側で常に「アドレスはすでに使用されています」というエラーが生成されます。また、 「localSocket」と「echo_socket 」を使用してみましたが、クライアント側で常に「そのようなファイルまたはディレクトリはありません」というエラーが生成されます。
何が起こっているのかわかりません。誰かが私がそれを修正するのを手伝ってもらえますか?本当に感謝しています。
どうもありがとうございます
java - ソケット サーバー: シェルのようなインターフェイスを提供する必要があります
ソケットを使用して Web サーバーを実装しました (ディレクトリ リスト サービスを構築します)。
テキスト (シェルのような) インターフェイスを提供する方法がわかりません。
ユーザーが共有するすべてのファイルを表示するなどの適切なサーバー アクションを呼び出すために、ユーザーがコマンドを入力できるため、これは基本的に必要です。
サーバーが既に実行されている場合、コマンド ライン インターフェイスをこのサーバーと組み合わせるにはどうすればよいでしょうか。
誰でも助けてください。
ありがとう
java - ソケットプログラミングjava-ソケット接続が有効な時間はどれくらいですか?そして、どうすればそれを制御できますか?
ソケットに対して何もアクションを実行しない場合、どうすればソケット接続を維持できるか知っていますか?接続がバックグラウンドで実行されていない場合、次のようになります。
では、アイドル時間の後に接続が失われないように、またデフォルトでどのくらいの時間が経過した後に接続が失われないように制御するにはどうすればよいですか?
java - Java ServerSocket および Android LocalServerSocket
次のように独自のAndroidサービスを実装しました
私が直面している問題は、LocalServerSocket が accept() でブロックされている場合、OnDestroy() で server.close() を呼び出しても SocketException がスローされないことです。したがって、次回サービスを開始すると、「アドレスは既に使用されています」という例外が発生します。LocalServerSocket の代わりに java.net.Socket を使用すると、必要な動作が得られます。LocalServerSocket が Java ソケットと異なる動作をする理由を知りたいです。私の場合、while ループから抜け出す方法を教えてください。
android - Androidエミュレータへのローカルマシン接続
逆の答えを見つけるだけです!
IP 10.0.2.2を使用してローカルマシンでホストしているときに、エミュレータをサーバーに接続させることができます。ただし、ローカルマシンからホスティングエミュレータに接続しようとすると、他の方法では機能しません。
この場合、IP 127.0.0.1を使用すると、ConnectExceptionが発生します:接続が拒否されました。不思議なことに、エミュレータでクライアントをホストしているときと使用しているときの両方で正常に動作します。
どうしたの?
sockets - AI_PASSIVE での getaddrinfo() の使用
このgetaddrinfo()
関数は、クライアント プログラムが特定のホストへのソケットを作成するための正しいデータを効率的に見つけることを可能にするだけでなく、サーバーが正しいソケットにバインドすることも可能にします (理論上)。
私はそれについて学び、 Pythonを介してそれをいじり始めました:
収量
何か問題があるのではないかと思います。
これらの回答に対して正確に何をすればよいのでしょうか? するべきか
- これらすべての回答の ing ソケットを作成する
listen()
必要がありますか? - 本当に機能する最初のものを選ぶだけですか?
マンページの例では、最初のものだけを取得し、エラーがなければ満足することをお勧めしますが、私の例では IPv4 経由でしか接続できません。
しかし、それらすべてを試してみると、特定の条件 (OS、ソケットフラグなど) が満たされた場合に IPv6 サーバーソケットも IPv4 をリッスンするため、2 つのサーバーソケットを心配する必要があります。
どこが間違っていると思いますか?
編集:明らかに、私は間違っているとは考えていませんが、私のPCは間違ったことをしています. /etc/gai.conf
私はOpenSUSE に同梱されているデフォルトを使用しています。誰かが私を正しい方向に向けることができれば幸いです。
編集 2: 与えられたケースでstrace
は、読み取り後に内部的に行われた次の呼び出しを与えます/etc/gai.conf
(現在、ポート 22 を使用すると何らかの悪影響がある可能性があると考えたため、ポート 54321 を使用しますが、そうではありませんでした):
明らかに、決定は呼び出しの結果に従って行われることを意図していgetsockname()
ます...
ところで: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/673708およびそこに記載されている他のバグレポートは、私の観察を裏付けています。そこにいる何人かの人々は、新しい動作が正しいと主張しているので、私は明らかにAF_INET6
... の使用に固執しています:-(
sockets - ServerSocket と Socket は同じポートを使用できますか?
ここで、serversocket を使用してポート x をリッスンしたいと同時に、ポート x を使用して他のサーバーソケットへのソケットを確立したいと考えています。つまり、serversocket があり、ソケットが 1 つの同じポートを使用することを意味します。
ソケットの場合、それは4つのタプルであり、1つのポートに複数のソケットを含めることができますが、ソケットとサーバーソケットの場合は?
ご清聴ありがとうございました!
java - 全二重サーバー ソケットの実装、個別の読み取りスレッドと書き込みスレッド?
同じサーバーソケット(Javaアプリケーション)で(サーバーからクライアントへランダムに)読み書きしたい。私のクライアントからサーバーへの書き込みと読み取りは、ループ内で正常に動作します。応答のあるサーバーで適切に書き込みます。
しかし、サーバーでランダムにコマンドを書き込もうとしている場合。私には解決策がありません。まず私の質問は次のとおりです。
- サーバー側で同じソケットのクライアント ramdonly にコマンドを書き込むことは可能ですか?
- 可能であれば、それを行う方法についての提案や指針はありますか?
- このシナリオに関する資料を読むことができる場所を教えてください。
前もって感謝します。
java - java.net.SocketException: 無効な引数: 接続
java.net.SocketException: Invalid argument: connect
次の基本的なコードを実行すると、新しいラップトップ (Alienware m17x) がエラーをスローします。
サーバー.java:
クライアント.java:
(Server.java の起動後) Client.java を実行するたびに、このソケット例外が発生します。例外の完全なトレースは次のとおりです。
私はいくつかのことを試しましたが、運が悪く、常に例外がスローされます。これが私が結論したことです:
- ポート番号を変更しても何も変わりません。
- ネットワークの問題ではありません。私は学校と家で例外を受けました。
- JVM と JDK を再インストールしましたが、うまくいきません。
- これは、1 台のマシンでのみ発生します。デスクトップで同じコードを実行しましたが、例外は発生していません。両方で Windows 7 を使用しています。
- ファイアウォールによってブロックされていません。ファイアウォールをオフにしましたが、まだこの問題が発生しています。
この問題を解決するには、何を行うか、または確認する必要がありますか?
編集: 印刷出力のルーティング:
編集: @ PhilippeLM と @ beny23 が私に気付いたように、Java システム変数 java.net.preferIPv4Stack を true に設定すると、問題が解決します。ただし、恒久的な修正が必要です。Java アプリケーションを実行するたびにシステム変数を指定したくありません。
これが私がもう一度運がないことを試したことです:
- 次の手順に従って、 IPv4 を優先するようにマシンの設定を設定します
- のファイルに行
java.net.preferIPv4Stack=true
を追加します。net.properties
%JAVA_HOME%\jre\lib
他に試せることはありますか?