問題タブ [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.

0 投票する
4 に答える
308 参照

java - 2つの異なるアプリケーション、Javaを使用したサーバーのソケット通信

異なるプラットフォームの2つの異なるアプリケーションが相互に通信するのに役立つサーバーのコードを書いています。少し視覚化すると、次のようになります。

App1<------>サーバー<------>App2

サーバーが行うことは、app2からvar1をリアし、app1に書き込み、次にapp1からvar2を読み取り、app2に書き込みます。このような :

while(true){
var1 = app2stream.readInt();
app1stream.writeInt(var1);
var2 = app1stream.readDouble();
app2stream.writeDouble(var2);
}

私の問題は、ある時点でサーバーにこのコードがあることです。

app1.accept();
app2.accept();

これが意味することは、何があっても、サーバーが常に実行されているという事実を考えると、app1.accept()はブロッキングメソッドであるため、app1が最初に接続する必要があるということです。

これを回避する方法はありますか?誰が最初に「来た」かに関係なく、2つのアプリケーションがサーバーに接続できるようにしてから、サーバーが上記のコードを続行するのを待つのは素晴らしいことです。accept()部分だけにスレッドを使用してから、ストリームを他のスレッドに渡すことはできますか?私はチャンネルについて少し読みましたが、少し混乱しました。どんな例でも素晴らしいでしょう。

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

java - ServerSocket スレッドを正しく停止するには? ソケットのクローズに失敗しました

これは以前に何度か議論されたことは知っていますが、私の問題に対する適切な解決策が見つかりません。ServerSocket指定されたポートをリッスンして、バックグラウンドでスレッドを実行したい。実際には機能していますが、一度だけです。サーバーがリッスンしているポートが正しく閉じられず、再起動しようとしてもアクティブになっているようです (スレッド自体を再起動しないでください)。正しく動作しない理由を教えてもらえますか? 助けてくれてありがとう...!

編集:

クライアント側でも同じ問題があります。送信者スレッドがあり、そのスレッドを停止することはできません。それを行う最善の方法は何ですか?

ClientConnector、サーバー ポートに接続してデータを送信する単なるクラスです。スレッドなどではありません。

それが私の送信者クラスです:

そして、私はそのような振る舞いを処理しようとします:

なんとなくそんなのやめられないInternalCamSender。前に試してみましたvolatile booleanが同じでした。http://download.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.htmlページを読んで、例Thread.stop の代わりに何を使用すればよいですか? も試しました。しかし、それでもスレッドを停止していませんでしたか? 迷っています。

何か案は?

編集: ここでクリネット送信の問題の答えを見つけましたhttp://www.petanews.de/code-snippets/java/java-threads-sauber-beenden-ohne-stop/ でも、なぜそれが機能しているのかわかりません。私は前にそのように試みたと確信しています。

問題が解決しました!

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

http - HTTP適合性テストスイートを知っている人はいますか?

私と私の友人たちは、大学のプロジェクトとして HTTP サーバーを構築しています。しかし、テストに関しては、ちょっとした障害にぶつかりました...

パフォーマンス テストを実行しましたが、プロトコル適合性テスト用のツールが見つかりませんでした。

たとえば、ネットワーク上のマシンでソフトウェアを実行し、ソフトウェアが要求を作成し、応答の有効性 (つまり、適切なヘッダーなど) をテストするようにします。

送信される応答の本文は重要な問題ではないため、気にしません。

ここで誰か助けてくれませんか???

よろしく
Binaek Sarkar
Foundation

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

java - Socket server hang when testing with ab, waiting BufferedReader.readline()

I am making a Java-based web server. But when I am testing it with ApacheBench, it sometimes stop responding.

On a Macbook Air:

#xA;

is guaranteed to timeout after 16400 or more requests were done.

On Ubuntu desktop

#xA;

could done successfully most of the time, but sometimes stop responding after several runs.

I've identified (using Eclipse) that when the server stop responding, it is waiting for BufferedReader.readline() which I use it to read HTTP request header. But I have no idea why is it waiting.

Test code is here:

#xA;

BTW, when writing the test code, I found something else strange

If

#xA;

is replaced with

#xA;

ab will fail with such message: "apr_socket_recv: Connection refused (111)Connection reset by peer (104)"

But open localhost:1080 with Firefox 4 will see the "don't read the socket" mess show up.

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

c++ - bind: 非ソケットでのソケット操作

サーバーとクライアントを作成していて、「bind: Socket operation on non-socket」というメッセージが表示され続けます。

私はこれについて調べました.別のアプリケーションで実行される他のコードがあり、このバグを見つけるために8時間使い果たしました.

コードは次のとおりです。

また、これに先立って、この関数でメモリ ブロックを memset します。

変数は、クラスのヘッダー ファイルで宣言されます。

-- コードを編集して、もう少し明確にする必要があります。socket1 は getSocket() で初期化されます。

多くの人が if のかっこを見逃しているところを見てきましたが、myAddressSize と bindReturnValue を宣言することでそのエラーを解消したと思います。

どんな入力でも大歓迎です。
ありがとう、テッド・S

わかりました、問題は解決しました。もちろん、問題はあなたが探している場所ではありません。これが修正されたコードです。問題は、socket() の呼び出しで括弧のセットが欠落していたことにありました。

再度、感謝します!

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

java - Android での保護されていない Bluetooth 接続

私はある教授から、Android で小さな Bluetooth デモ アプリを開発するように依頼されました。2 週間前に彼から挑戦を受けるまで、私は Android 向けの開発について何も知りませんでした。また、Java プログラミング全般についてもまったくの初心者なので、まったくの初心者です。とにかく...

そこで、チュートリアルのほとんどを完了し、Android の Bluetooth について読み、Bluetooth チャットのサンプル コードを確認し、小さなアプリを実行しようとしています。したがって、私のデモでは、実際の電話と Bluetooth マウスの間の接続を確立しようとします。マウスの動きに応じて、携帯電話の画面上の図形を移動したいと考えています。

多くの問題に遭遇しましたが、これまでのところ、私の主な問題は、安全でないマウスでソケットを開くことです。メソッドを使用しようとするlistenUsingRfcommWithServiceRecordと、パラメーターとして UUID が要求されます。しかし、私のマウスには応答する UUID がない可能性が高いため、この方法は適切ではないと思います。

この方法に関するドキュメントを読むと、マウスなどのデバイスで安全でないサーバー ソケットを開くには、この方法を使用する必要があると書かれていますlistenUsingInsecureRfcommWithServiceRecord。しかし、このメソッドを呼び出すと、このメソッドは使用できません。赤で下線が引かれ、Eclipse は BluetoothAdapter タイプに対して未定義であると表示します。

私がそれをすべて間違っているとしても、私を怒らせないでください。これは私の最初の質問であり、私は Java プログラミングを始めています。

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

java - ServerSocket accept() ループ スレッドの停止

ServerSocket と Sockets をより適切に制御するために非常に基本的な API を実装していますが、スレッドに関する知識がないために修正できない非常に奇妙な問題に直面しています。説明させてください。

私のクラス SocketStreamReceiver では、セカンダリ スレッドを使用して新しいソケットをリッスンしServerSocket#accept()ます。クライアントが SocketStreamReceiver を開始 (スレッドを作成してリッスンを開始accept()) および停止 (ServerSocket を閉じてスレッドを破棄) するために使用できる start() と stop() の 2 つのメソッドがあります。

stop() メソッドをどのように実装しますか? stop() は、doSomething() 内で、start() によって開始された同じセカンダリ スレッドで呼び出すことができることに注意してください。好きなように変更できます。必要に応じて、while(running) の直前に、スレッド内に ServerSocket を作成できます。

ありがとう。

編集 - 解決策:

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

android - Androidシステムがサービス中のサーバーソケットを強制終了します

Androidでサーバーを作成し、PCに接続するクライアントを作成するためのサンプルアプリを作成しています。サーバーソケットをサービスのスレッドに入れました。画面が消えてから数分後まで、すべてが完璧に進みます。これはAndroidがサーバーを強制終了する可能性があり、コードに完全なウェイクロックを設定しようとしましたが、それ以上強制終了しませんが、通常どおり画面をオフにします。これが私のコードです:

0 投票する
4 に答える
2403 参照

java - Java で JFrame および TCP 通信を終了する前にリソースを閉じる

1. TCP 通信でチャット ベースのアプリケーションを作成しています。NetBeans を使用しており、JFrame を終了するときにデフォルトの EXIT_ON_CLOSE に機能を追加したいと考えています。その理由はもちろん、リソースをきれいにしてスレッドを安全に終了させたいからです。リソースをクリアしてから JFrame を安全に閉じてプロセスを終了するメソッドを呼び出すにはどうすればよいですか。

2. サーバー側を実装する必要があります。サーバーには、チャットのニックネームを含む「ソケット」のリスト/ハッシュマップ/キューがあります。私は車輪を再発明したくないので、それを正しく行うための簡単なデザインパターンはありますか?

ありがとう。

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

android - Android 1.6 でパケットが失われる

Android 1.6 (Sony Xperia X10) で次のことが発生しました: 同じデバイスの WebView で XMLHttpRequest を使用してデータを要求すると (例: 127.0.0.1:8080)、経由ServerSocket.accept()でパケットを処理すると、XMLHttpRequest がスタックすることがあります。デバッガーは、サーバーが実際には深いところにあることを教えてくれますServerSocket.accept()。彼は最後の要求を処理したか、受信していません。WebViewCoreThread がスタックしている

おそらくそれを待っているhttp0...http3スレッド、すべてが待っている

まず、リクエストパケットが失われたと思いました。しかし、それはすべてのスレッドが同じ待機位置にある理由を説明していませんhttp...1つは応答を待つ必要があり、他のスレッドはWebViewからの新しいジョブを待つ必要があります. 何か案は?