[問題] Server/Clinet的問題~

看板java作者 (gnn)時間19年前 (2006/04/07 14:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
請問一下: 我想寫一個多執行緒的webserver讓多個client同時來連到server取得index.htm檔, 而這是建立TCP連線,我想把觀念搞清楚,我知道server跟client溝通時,需各產生一個 socket來對談,那資料的Input跟Output稱為Stream。我參考書本有一支server的程式, 一支client的程式,可是我不知道多執行緒要加在哪,我也不知道怎麼把檔案(*.htm) 放在server端。所以我覺得是不是我的觀念還少了一些什麼,沒辦法很明確的知道我 程式要怎麼改。之前我寫過C,Java我k大約1星期。我把程式碼放在下面,也請大大 幫我釐清一下這個問題。感謝!~^^" // app22_6, 建立Server端的伺服程式 import java.net.*; import java.io.*; public class app22_6 { public static void main(String args[]) { try { ServerSocket svs=new ServerSocket(2525); System.out.println("等候客戶端的請求中..."); Socket s=svs.accept(); // 等候客戶端的請求 System.out.println("客戶端已和本機連上線..."); OutputStream out=s.getOutputStream(); // 取得輸出串流 String str="Hello Client"; System.out.println("資料正在傳送中..."); out.write(str.getBytes()); // 將字串轉成Byte陣列,再寫入串流中 out.close(); // 關閉輸出串流 s.close(); // 關閉socket System.out.println("資料傳送完畢..."); } catch(Exception e) { System.out.println("發生了"+e+"例外"); } } } --------------------------------------------------------------------------- // app22_7, 建立Client端的伺服程式 import java.net.*; import java.io.*; public class app22_7 { public static void main(String args[]) { byte buff[]=new byte[1024]; // 建立byte型態的陣列 try { System.out.println("正在與伺服器建立連線..."); Socket s=new Socket("127.0.0.1",2525); // 建立socket物件 System.out.println("已經與伺服器取得連線..."); InputStream in=s.getInputStream(); // 建立輸入串流 int n=in.read(buff); // 從串流讀入資料 System.out.print("從伺服端收到: "); System.out.println (new String(buff,0,n));// 印出讀入的內容 in.close(); s.close(); } catch(Exception e) { System.out.println("發生了"+e+"例外"); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.115.144
文章代碼(AID): #14DW8nQ7 (java)
文章代碼(AID): #14DW8nQ7 (java)