嗨我真的想創建一個多線程Web服務器 我已經提到 Link 1 Link 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);
}
}
}
在上面的代碼中,我不斷收到一個線程非法訪問異常那就是爲什麼我不斷收到此異常 我想打開瀏覽器中的多個選項卡並打開本地主機:3000然後服務器必須打印http請求和端口號,但這種情況只發生在第一個客戶端,而不是其他的它顯示非法線程訪問異常和程序終止
將大大欣賞是否有任何頁面告訴如何在Web瀏覽器中顯示一些內容。
將幫助,如果你添加異常的堆棧跟蹤 –
嗨,我使用trycatch塊,所以我只得到異常的消息我們得到一個堆棧跟蹤只有當程序執行停止由於沒有被捕獲儀式的異常儀式? – AAB
我會從實施一個簡單的生產者/消費者模式開始。不要粗魯,但我認爲一個網絡服務器可能會超出你的能力。 –