問題タブ [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.
java - 可能なServerSocketのリストを見つける
ネットワークのクライアントサーバーオプションを含むゲームをプログラムしたい。
このためには、コンピューターでサーバーをホストしているすべてのユーザーのリストを取得できる必要がありますが、Socketクラスにはコンピューターの名前が必要です。このリストを取得することは可能ですか?もしそうなら、どのように?
どうもありがとうございます
windows - Windows posix sockets performance
I am looking for information on Windows network programming. Mainly how to get a single executable to cope with 1000 connections.
We use select() FD_ISSET etc on unix and this works very quick. On Windows these APIs are very poor. FD_SET is lots slower but even when working around this, Windows is lots slower than HPUX.
I'm looking for a win32 API call which I can use instead of the select() call which doesnt require so much CPU/time. Currently we spend 50% of the time (and CPU) in select(), where as on unix the time spent in send() and recv(), which is what I would expect.
Thanks Neil
tcp - TcpListenerは、切断された接続の受け入れを停止または受け入れます
現在、Windowsで実行されている自作サーバーアプリケーションで問題が発生しています(異なるバージョンで発生します)。サーバーはTCPポートでリッスンし、接続を受け入れ、一部のデータを交換してから、接続を再度閉じます。時々接続する約100のクライアントがあります。
サーバーが動作を停止することがあります。ログファイルには、接続が引き続き受け入れられていることが示されていますが、最初の読み取り試行でソケットエラー(10054-ピアによる接続のリセット)が発生します。すべてのクライアントで突然機能しなくなるため、クライアントの問題ではないと思います。
同じ問題が、別のプログラミング言語で書かれた古いサーバーソフトウェアでも発生することがわかりました。それで、それは私たちのプログラムのエラーではないようです-それはある種のOS /ファイアウォールの問題であるに違いないと思いますか?もちろん、ファイアウォールは非アクティブ化されていますが、まだ問題は解決していません。
どこを調べるべきか?Wiresharkのログはすぐに続きます。
ログからの抜粋(タイムスタンプ、スレッドID、メッセージ)
接続が受け入れられるのとほぼ同時に例外が発生することがわかります。この場合、クライアントは数秒後に再接続します。
android - Android - BitmapFactory.decodeByteArray が null を返す
ソケット接続を使用して PC から Android に画像を転送しようとしています。PC から電話にデータを受信できますが、byte[]
toに渡すBitmapFactory
と null が返されます。また、画像を返すこともありますが、常にではありません。
画像のサイズは です40054 bytes
。一度に受信2048 bytes
しているので、データを保持する小さなデータ プール (バッファ) を作成しbyte
ます。完全なデータを受け取った後、 に渡しますBitmapFactory
。これが私のコードです:
計算
また、一度に 40054 バイト全体を読み込もうとしましたが、これもうまくいきませんでした。コードは次のとおりです。
また、最後に確認しましdecodeStream
たが、結果は同じでした。
私が間違っているところはありますか?
ありがとう
java - Java ServerSocket から iPhone へのネットワークの問題 (3g モードのみ)
奇妙な動作が発生しています:
iPhoneデバイスから送信されるTCPリクエストを処理するJava ServerSocketに基づくサーバーがあります。iPhone を Wi-Fi 経由で接続して使用すると、ネットワークに問題がないことに気付きました。iphone は接続を開き、ストリームからの書き込みと読み取りを行う必要があり、顕著な遅延はありません。ここまでは順調ですね。ただし、3g を使用すると、最初のメッセージが送信されてから応答が完全に返されるまでに 1.5 秒の遅延が発生します。サーバーがメッセージをソケットにフラッシュした直後に、メッセージの最初のバイトが読み取られるようですが、残りのメッセージは約 1 秒間 (!) 遅延しています。
このネットワークの動作は、iPhone 側に到着するバッファ サイズを出力することと、サーバー側で Wireshark を使用してネットワークを監視することの両方で確認しました。 Wireshark もこれを示しています。最初のバイトは 1 バイトのメッセージ サイズ (常に 0 BTW) で送信され、残りのメッセージはその後、1 つまたは複数の大きなメッセージ (~1300 バイト) で送信されます。
メッセージは、8 バイトのヘッダー (2 つの整数 - タイプとサイズ) と、そのサイズの本文で構成されます。
本当に奇妙なことは、c ++で同じプロトコルを使用する同様のサーバーを(pocoサーバーを使用して)作成すると、完全に機能することです。
ソケットの DataOutputStream を使用して、2 つの writeInt 命令と本体を書き込む write(byte[]) を使用してヘッダーを書き込みます。次に、ストリームをフラッシュします。
この種の動作を引き起こす可能性のあるソケットオプション(Java)があるかどうかは誰にもわかりませんか?
どんな助けでも大歓迎です。
java - 切断イベントを検出する方法
私はSocketとServerSocketでJavaを使用して小さなプログラムを書いています。サーバーといくつかのクライアントがあります。ユーザー(クライアント)がウィンドウを閉じると、クライアントとサーバー間の接続が閉じられます。
私の問題はサーバー上にあり、そのクローズイベントを検出できません。誰が私を助けられるか。
接続を閉じる前に、クライアントからサーバーにメッセージを送信して、このイベントを通知できます。ただし、tast manager(javaw.exe)からのユーザーエンドプロセスの場合、このソリューションは不可能です。
java - Java から Flex Serversocket にバインドできません
サーバーソケット API を介して Java ベースの Android アプリをフレックス (AIR) アプリケーションに接続しようとしていますが、接続中に常にタイムアウトします。
ここに私のフレックスコードがあります:
ポート2000で127.0.0.1に接続します
Java 側:
}
エラー:
05-24 12:21:24.043: WARN/System.err(28797): java.net.SocketTimeoutException: トランスポート エンドポイントが接続されていません
これはセキュリティ サンドボックスの問題ですか? デバイスと AIR アプリが同じローカル ネットワーク内にある。
android - ServerSocket は Android では受け入れられません
他の誰かが同じ問題を抱えているかどうか、または私の問題に対する可能な解決策があるかどうかを確認しています。
私の在庫のEvoは、接続を受け入れるために、デバイス上にServerSocketの形式を持たないことがわかりました。最近、ServerSocket をセットアップしましたが、ローカル ホストを使用して電話経由でアクセスしようとしましたが、成功しませんでした。私は自分のアプリケーションのためにこれを一度試しました。3GとWiFiを使ってみました。私は主にコンピューターと電話の間で通信しますが、この例では、電話が自分自身と通信しているだけでした。以前の試行では、電話はコンピューターに問題なく接続できましたが、その逆は機能しませんでした。電話で DatagramSocket、ServerSocket、MulticastSocket をすべて試してみましたが、コンピューターからのデータであれ、それ自体からのデータであれ、まったくデータを受信できません。私はインターネットの許可を持っており、マルチキャストの許可もすべて持っています。私がここに欠けているものはありますか?在庫のEvoが何があっても接続を完全に受信できない可能性はありますか?
apache-flex - アプリが AIR 2.5 より前のバージョンで実行されている場合、アプリで ServerSocket 機能を使用できますか?
AIR アプリでは、クラスを使用ServerSocket
して特定のポートで接続をリッスンしています。ドキュメントによると、これはAIR 2.0以降で利用できます。サーバーのように動作するためにリッスンする必要があるイベントは ですServerSocketConnectEvent
。これも AIR 2.0 以降で使用できます。このオンライン、チュートリアルなどの例がいくつかあります。
問題は、以前のクラスが Flex SDK 4.0 で使用できるのに対し、イベント自体は Flex SDK 4.1 以降でしか存在しないことです。つまり、ランタイムは AIR 2.5 以上である必要があります。ターゲット マシン ( Linux Red Hat Enterprise Linux Server リリース 5.5 ) では、AIR 2.0 しかインストールできませんでした (glibc への依存関係に問題があるため、AIR 2.5 にアップグレードできません)。
これらの機能はすべて AIR 2.0 以降で利用可能であると書かれていますが、これらのリリース ドキュメントやチュートリアルに誤りはありますか? 私の印象では、ソケットをリッスンするサーバーとして機能する機能は、2.5 以降でのみ利用可能です。
もしそうなら、ランタイムが 2.0 であっても、これらの新機能の恩恵を受ける方法はありますか? ServerSocketConnectEvent
つまり、AIR SDK 2.5 のSWC ( ) をアプリケーション内に埋め込むということですか?