私のスレッドクラスには、Serverに情報を送るセクションがあります。 、ソケットからスレッドをサーバーに送るにはどうすればいいですか
ServerSocket s1 = new ServerSocket(portNumber);
System.out.println("Listening");*/
ArrayList<Socket> sockets_list = new ArrayList<Socket>();
ArrayList<Scanner> scanners_list = new ArrayList<Scanner>();
for (int i = 0; i < Thread_Count; i++) {
Socket news = s1.accept();
sockets_list.add(news);
Scanner newSc = new Scanner(sockets_list.get(i).getInputStream());
scanners_list.add(newSc);
System.out.println("socket added to server");
}
ArrayList<String> results = new ArrayList<String>();
for (Scanner scanner : scan_list) {
String res2 = "";
while (scanner.hasNext()) {
String res = scanner.next();
res2 += res + " ";
}
if (!res2.equals("")) {
results.add(res2);
}
}
for (String string : results) {
System.out.println(string);
}
私はこのコードを実行すると:
PrintStream p = new PrintStream(sock.getOutputStream());
p.println(thread_name + "found : " + item);
とサーバ側で、私はInputStream
を使用して情報に到達しようとしている:そして、私はこのようなソケット経由で送信しようとしています何も出力しないか、ただ1つのスレッドの情報を出力します。どうすれば修正できますか?あなたのアドバイスのための
のTyのhasNextためdocs from Scanner(から撮影
何かを送った後にクライアントを切断していますか?さもなければ、 'scanner.hasNext())'は永遠に真でなければなりません(あなたのプログラムがハングする) – zapl