[問題] Server/Clinet的問題~
請問一下:
我想寫一個多執行緒的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
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章