您的位置:首页 > 其它

叶存菜鸟笔记多线程应用与echo案列

2015-08-24 20:08 330 查看
1,、回顾多线程定义,继承类Thread,或者 实现Runnable接口,无论使用哪种方式,定要 覆写run()方法,最后在调用时,使用对象.start(),便可实现多线程运行程序。

2、在应用时和Echo经典案例相似,在需将哪个端口需要多线程时将其单独形成一个实现类。代码如下:

客户端:

import java.io.*;

import java.util.*;

import java.net.*;

public class EchoThreadApplication implements Runnable{ // 类实现Runnable接口,利用Runnable接口完成多线程

private Socket client=null; //每一个client

public EchoThreadApplication(Socket client){

this.client=client;

}

public void run(){ //覆写run()方法,没有什么不同 ,打印服务器程序

PrintStream out=null;

BufferedReader buf=null;

try{

buf=new BufferedReader(new InputStreamReader(client.getInputStream()));

out=new PrintStream(client.getOutputStream());

boolean flag=true;

while(flag){

String str=buf.readLine();

if(str==null||"".equals(str)){

flag=false;

}else{

if("bye".equals(str)){

flag=false;

}else{

out.println(str);

}

}

}

out.close();

client.close();

}catch(Exception e){

}

}

}

服务器端:

import java.io.*;

import java.net.*;

public class EchoThreadServerApplication {

public static void main(String args[])throws Exception{

ServerSocket server=null; //实例化服务器端接口

Socket client=null; // 实例化客户端

server=new ServerSocket(9999);

boolean f=true;

while(f){

System.out.println(" 服务器正在运行,等待客户端连接。");

client=server.accept(); //接收客户端链接

new Thread(new EchoThreadApplication(client)).start(); 启动一个 线程运行client

}

server.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: