作者gnn0206 (gnn)
看板java
标题[问题] Server/Clinet的问题~
时间Fri Apr 7 14:17:44 2006
请问一下:
我想写一个多执行绪的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