※ ChatGPTを利用し、要約された質問です(原文:javaサーバーとポートを入力してメッセージ)
Javaサーバーとポートを入力してメッセージ
このQ&Aのポイント
Java初心者のためのサーバーとポートを入力してメッセージを送信するプログラムの作り方を教えてください。
プログラムでは、フレームを表示させてからサーバーとポートを入力し、数字などを入力できるようにしたいです。
具体的な実装方法や注意点についても教えてください。
こんにちは、java初心者なのですが、やり方がいまいちわかってないので教えてください。
このプログラムでは、プロンプトからホストナンバーを入力して、フレームが表示されるようになってるんですが、実行するときに、フレーム(swing)を先に表示させて、サーバーとポートを入力してから
数字などを入力できるようにしたいのですが、どうしたらいいのかわからないので教えてください。
サーバーのクラス
public class ThreadedEchoServer {
public static void main(String[] args) {
int i = 1;
try {
ServerSocket s = new ServerSocket(7776);
for (;;) {
Socket incoming = s.accept();
System.out.println("Spawning " + i);
new ThreadedEchoHandler(incoming, i).start();
i++;
}
} catch (Exception e) {
System.out.println(e);
}
}
}
class ThreadedEchoHandler extends Thread {
private Socket incoming;
private int counter;
public ThreadedEchoHandler(Socket i, int c) {
incoming = i;
counter = c;
}
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
PrintWriter out = new PrintWriter(incoming.getOutputStream(), true);
out.println("Hello! Please send me an number (0 to exit).");
boolean done = false;
while (!done) {
String str = in.readLine();
if (str == null)
done = true;
else {
try {
int i = Integer.parseInt(str);
if (i == 0) {
out.println("End !!!");
done = true;
break;
}
String forClient = (i % 2) == 0 ? " You are wrong " : " You are write ";
out.println(forClient);
} catch (Exception e) {
out.println("Please send a number!");
}
}
}
incoming.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
お礼
すいません・・・このプログラムの後に、別のプログラムを載せるつもりだったんですが、文字数が入らなくて、入力できませんでした・・・。先生とかにも聞いたんですが、かなり難しいので、しなくていいと言われたので、結局やらずに提出してしまいました・・・。 また機会があれば、勉強したいと思っています。 返事が遅くなってすいませんでした。