こんにちは、 リンク 1 リンク 2を参照したマルチスレッド Web サーバーを作成しようとしています。
import java.net.*;
import java.io.*;
public class WebServer {
ServerSocket server;
public WebServer() {
try {
server=new ServerSocket(3000);
} catch (IOException ex) {
System.out.println("exc in const "+ex.getMessage());
}
}
Socket client;
BufferedReader br;
Thread t=new Thread(new Runnable(){
@Override
public void run() {
try{
System.out.println(br.readLine());
}
catch(Exception e){
System.out.println("exc is "+e);
}
}
});
public void RUN(){
while(true){
try {
client=server.accept();
System.out.println(client.getPort());
if(client!=null){
r=new BufferedReader(new InputStreamReader(client.getInputStream()));
t.start();
}
} catch (IOException ex) {
System.out.println("ex is "+ex.getMessage());
}
}
}
public static void main(String[] args) {
WebServer webserver=new WebServer();
try {
webserver.RUN();
} catch (Exception e) {
System.out.println("main "+e);
}
}
}
上記のコードでは、スレッドの Illegal Access Exception が発生し続けるので、なぜこの例外が発生し続けるのでしょうか ブラウザーで複数のタブを開き、localhost:3000 を開きたい場合、サーバーは http 要求とポート番号を出力する必要がありますが、これは最初の場合にのみ発生します他ではなくクライアントが illegalThreadAccess Exception を示し、プログラムが終了する
ウェブブラウザでコンテンツを表示する方法を説明しているページがあれば、大いに感謝します。