Jvav基础学习总结
一、TCP编程
1、 在服务器上应用多线程
对于服务端来说,如果要加入多线程机制,则应该在每个用户连接之后启动一个新的线程。所以先建立一个EchoThread的类,此类专门用于处理多线程操作,此时的多线程用Runnable接口实现。
//创建线程类 import java.io.*; import java.net.*; public class EchoThread implements Runnable { private Socket client=null; public EchoThread(Socket client){ this.client=client; } public void 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("ECHO:"+str);}} } out.close(); client.close(); }catch(Exception e){} } }; import java.net.ServerSocket; import java.net.Socket;
//实现线程 public class demoThread { /** * @param args */ public static void main(String[] args)throws Exception { // TODO Auto-generated method stub ServerSocket server=null; Socket client=null; server=new ServerSocket(8888); boolean f=true; while (f){ System.out.println("服务器运行,等待客户端连接。"); client=server.accept(); new Thread(new EchoThread(client)).start(); }server.close(); } };