嗨,我正在尝试创建一个多线程 Web 服务器,我提到了 Link 1 Link 2
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);
}
}
}
在上面的代码中,我不断收到一个线程非法访问异常,所以为什么我一直收到这个异常我想在浏览器中打开多个选项卡并打开 localhost:3000 然后服务器必须打印 http 请求和端口号,但这仅发生在第一次客户端而不是其他显示非法线程访问异常并且程序终止
如果有任何页面告诉如何在网络浏览器中显示某些内容,将不胜感激。