|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
//文件名:moreServer.java
importjava.io.*;
importjava.net.*;
importjava.util.*;
/**
*<p>Title:多线程服务器</p>
*<p>Description:本实例利用多线程完成多服务功效。</p>
*<p>Copyright:Copyright(c)2003</p>
*<p>Filename:</p>
*@version1.0
*/
classmoreServer
{
publicstaticvoidmain(String[]args)throwsIOException
{
System.out.println("Serverstarting...
");
//利用8000端口供应服务
ServerSocketserver=newServerSocket(8000);
while(true)
{
//堵塞,直到有客户毗连
Socketsk=server.accept();
System.out.println("AcceptingConnection...
");
//启动服务线程
newServerThread(sk).start();
}
}
}
//利用线程,为多个客户端服务
classServerThreadextendsThread
{
privateSocketsk;
ServerThread(Socketsk)
{
this.sk=sk;
}
//线程运转实体
publicvoidrun()
{
BufferedReaderin=null;
PrintWriterout=null;
try{
InputStreamReaderisr;
isr=newInputStreamReader(sk.getInputStream());
in=newBufferedReader(isr);
out=newPrintWriter(
newBufferedWriter(
newOutputStreamWriter(
sk.getOutputStream())),true);
while(true){
//吸收来自客户真个哀求,依据分歧的命令前往分歧的信息。
Stringcmd=in.readLine();
System.out.println(cmd);
if(cmd==null)
break;
cmd=cmd.toUpperCase();
if(cmd.startsWith("BYE")){
out.println("BYE");
break;
}else{
out.println("你好,我是服务器!");
}
}
}catch(IOExceptione)
{
System.out.println(e.toString());
}
finally
{
System.out.println("ClosingConnection...
");
//最初开释资本
try{
if(in!=null)
in.close();
if(out!=null)
out.close();
if(sk!=null)
sk.close();
}
catch(IOExceptione)
{
System.out.println("closeerr"+e);
}
}
}
}
//文件名:SocketClient.java
importjava.io.*;
importjava.net.*;
classSocketThreadClientextendsThread
{
publicstaticintcount=0;
//机关器,完成服务
publicSocketThreadClient(InetAddressaddr)
{
count++;
BufferedReaderin=null;
PrintWriterout=null;
Socketsk=null;
try{
//利用8000端口
sk=newSocket(addr,8000);
InputStreamReaderisr;
isr=newInputStreamReader(sk.getInputStream());
in=newBufferedReader(isr);
//创建输入
out=newPrintWriter(
newBufferedWriter(
newOutputStreamWriter(
sk.getOutputStream())),true);
//向服务器发送哀求
System.out.println("count:"+count);
out.println("Hello");
System.out.println(in.readLine());
out.println("BYE");
System.out.println(in.readLine());
}
catch(IOExceptione)
{
System.out.println(e.toString());
}
finally
{
out.println("END");
//开释资本
try
{
if(in!=null)
in.close();
if(out!=null)
out.close();
if(sk!=null)
sk.close();
}
catch(IOExceptione)
{
}
}
}
}
//客户端
publicclassSocketClient{
publicstaticvoidmain(String[]args)throwsIOException,InterruptedException
{
InetAddressaddr=InetAddress.getByName(null);
for(inti=0;i<10;i++)
newSocketThreadClient(addr);
Thread.currentThread().sleep(1000);
}
}
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net网页编程比java好。 |
|