A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ServerSocket を close() すれば java.io.InterruptedIOException が
飛んでこないでしょうか?
ServerSocket を、クラスのメンバーにして、そのクラスのスレッドで、
accept() をするスレッドと、中断させるスレッドからは、close() を
するような感じで。
# java は、経験がほとんど無いので自信はあまり無いですが...
No.2
- 回答日時:
以下が、サーバを別スレッドで実行させ、それをメインスレッドで監視/制御する方法の一例です。
このサンプルは、接続中にIEなどで"http://localhost:12354/"にアクセスすれば接続され、
10秒たっても接続がない場合は、強制終了させます。
import java.net.*;
class serverthread extends Thread {
private ServerSocket Server;
private Socket Client;
private boolean ConnectFlag;
public serverthread() throws Exception { super();
Server = new ServerSocket(12345);
ConnectFlag = false;
};
public void ConnectStart() { start(); };
public boolean CheckConnected() { return(ConnectFlag); };
public void BreakConnecting() {
try {Server.close(); } catch(Exception ex) { System.out.println("<close>" + ex.toString()); };
};
public String GetConnectionData() {
if (!ConnectFlag) return("NotConnected");
return(Client.getInetAddress().toString() + " : " + Integer.toString(Client.getPort()));
};
public void run() {
try {
Client = Server.accept();
ConnectFlag = true;
} catch(Exception ex) { System.out.println("<run>" + ex.toString()); };
};
}
public class serverto {
private static final int TimeoutTime = 10;
public static void main(String args[]) {
int Int1;
try {
serverthread ServerThread = new serverthread();
ServerThread.ConnectStart();
for (Int1 = 0; Int1 < TimeoutTime; Int1 ++) {
if (ServerThread.CheckConnected()) break;
System.out.println("Connecting.." + Int1);
try { Thread.sleep(1000); } catch(Exception e) {};
};
if (Int1 == TimeoutTime) ServerThread.BreakConnecting();
System.out.println(ServerThread.GetConnectionData());
ServerThread.join();
} catch(Exception ex) { System.out.println("<main>" + ex.toString()); };
};
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 提示した名言の"be to be able to do"の意味等について 4 2023/05/17 10:02
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- C言語・C++・C# 課題でどうしてもわからない問題があったので教えてほしいです、、 メンバ関数add_accept_st 3 2022/06/04 12:23
- 英語 和訳をお願いします 3 2022/05/17 20:57
- 英語 up to the dayの訳し方 2 2022/08/17 17:07
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- 英語 2文目のto use a scientific termの意味が分からないので教えて頂きたいです 1 4 2022/06/27 23:08
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングの問題です。大...
-
中カッコ{}だけの記述について
-
変数を動的に利用するには?
-
randomで
-
(大至急)JavaでATMもどきを作成
-
Javaの問題集の解答が意味不明です
-
コマンドライン引数の*(アフ...
-
【初心者です】javaで平均値を...
-
Javaでlog4jを使ってログ出力を...
-
オーバーロードで
-
Javaでデータベースの内容をGUI...
-
System.exit()の値を取得したい
-
Javaで日本語の出力が文字化けする
-
インタフェイス実装と抽象クラ...
-
NoSuchMethodErrorが解決できま...
-
クラスの作成 オブジェクトの...
-
StringクラスのcompareToメソッド
-
Javaでprivate変数を他クラスか...
-
元旦からの経過日数を求めたい
-
Java 最大公約数 gcd
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングの問題です。大...
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
Java プログラム public class ...
-
System.exit()の値を取得したい
-
Javaでlog4jを使ってログ出力を...
-
javaのプログラミングで作るRPG...
-
Socketの接続のタイムアウトを...
-
NoSuchMethodErrorが解決できま...
-
JSP/Servletのパラメータの受け...
-
コンストラクタの引数の中のnew?
-
バッチファイルごしのシステム...
-
Javaで日本語の出力が文字化けする
-
javaのudp通信について
-
日本語が文字コードによっては...
-
(大至急)JavaでATMもどきを作成
-
【java】同ディレクトリ別ファ...
-
javaで特定の文字列から特定の...
-
(1)を表示するには
-
Processing :指定フォルダ内の...
おすすめ情報