Re: [問題] Server/Clinet的問題~
看了您的程式,留幾個方向供您參考:
1.) 請在Server端放個while loop來一直accept(),
每次accept()之後請務必create 一個 thread 來handle 您的 stream.
2.) 根據Http protocol,Client跟Server是雙向溝通的,
所以兩個程式都應該有input stream 和 output stream.
3.) 去網路上找幾個java chatroom來看程式碼應該會學得比較快。
4.) 去K一下HTTP protocol。要不然,您寫出來的web server就只有您的client可以連
根本就沒意義。
※ 引述《gnn0206.bbs@ptt.cc (gnn)》之銘言:
> 請問一下:
> 我想寫一個多執行緒的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+"例外");
> }
> }
> }
--
夫兵者不祥之器物或惡之故有道者不處君子居則貴左用兵則貴右兵者不祥之器非君子
之器不得已而用之恬淡為上勝而不美而美之者是樂殺人夫樂殺人者則不可得志於天下
矣吉事尚左凶事尚右偏將軍居左上將軍居右言以喪禮處之殺人之眾以哀悲泣之戰勝以
喪禮處之道常無名樸雖小天下莫能臣侯王若能守之萬物將自賓天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦將知止知止可以不殆譬道之在天下猶 tm.net.my海
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章