日期:2014-05-20 浏览次数:20721 次
import java.io.*; import java.net.*; class TServer extends Thread{ Socket s; public TServer(Socket s){ this.s = s; } public void run() { sendMsg(s); getMsg(s); } public static void main(String [] args) throws Exception{ ServerSocket server = new ServerSocket(8888); while(true) { Socket s = server.accept(); TServer ts = new TServer(s); ts.start(); } } public static void sendMsg(Socket s){ System.out.println("请输入发送给客户端的信息:"); String line=null; BufferedReader br=null; OutputStream os =null; try{ br = new BufferedReader(new InputStreamReader(System.in)); line = br.readLine(); }catch(Exception e){ e.printStackTrace(); } try{ os = s.getOutputStream(); os.write(line.getBytes()); }catch(Exception e){ e.printStackTrace(); } } public static void getMsg(Socket s){ System.out.println("正在获取客户端的信息,请待........"); InputStream is =null; try{ is = s.getInputStream(); byte [] buf = new byte [1024]; int len = is.read(buf); System.out.println(new String(buf,0,len)); }catch(Exception e){ e.printStackTrace(); } } } import java.io.*; import java.net.*; class TClient extends Thread{ public static void main(String [] args) throws Exception{ Socket s = new Socket("127.0.0.1",8888); getMsg(s); sendMsg(s); } public static void sendMsg(Socket s){ System.out.println("请输入发送给服务器的信息:"); String line=null; BufferedReader br=null; OutputStream os =null; try{ br = new BufferedReader(new InputStreamReader(System.in)); line = br.readLine(); }catch(Exception e){ e.printStackTrace(); } try{ os = s.getOutputStream(); os.write(line.getBytes()); }catch(Exception e){ e.printStackTrace(); } } public static void getMsg(Socket s){ System.out.println("正在获取服务器信息,请待........"); InputStream is =null; try{ is = s.getInputStream(); byte [] buf = new byte [1024]; int len = is.read(buf); System.out.println(new String(buf,0,len)); }catch(Exception e){ e.printStackTrace(); } } }
getMsg(s); sendMsg(s);
------解决方案--------------------
必须使用非阻塞通讯 ,去看看 java.nio 这个包的内容把。jdk的javadoc中有说明的。
------解决方案--------------------
1、多线程
2、异步
------解决方案--------------------