使用java实现Server和Client(TCP)
Server.java
import java.io.*; import java.net.*; public class Server { public static final int PORT=8888; public void Server() throws IOException { ServerSocket ss = new ServerSocket(PORT); InetAddress ia = InetAddress.getByName(null); System.out.println("Server@"+ia+" start!"); try{ while(true){ Socket s = ss.accept();// listen PORT; try{ new ServerOne(s); } catch (IOException e) { s.close(); } } }finally{ ss.close(); System.out.println("Server stop!"); } } } class ServerOne extends Thread { private Socket s; private BufferedReader in; private PrintWriter out; public ServerOne(Socket s) throws IOException { this.s = s; in = new BufferedReader(new InputStreamReader(s.getInputStream())); out = new PrintWriter(new BufferedWriter (new OutputStreamWriter(s.getOutputStream())), true); start(); } public void run(){ try { while(true) { String str = in.readLine(); if(str.equals("end")) break; System.out.println("Server: receive information"+str); out.println("Echo: "+str); } System.out.println("closing...."); } catch (IOException e){ } finally { try{ s.close(); }catch(IOException e){} } } }
Client.java:
import java.io.*; import java.net.*; public class Client extends Thread { static final int MAX_THREADS=25; private static int id = 0; private static int threadCount = 0; private Socket s; private BufferedReader in; private PrintWriter out; public static int getThreadCount(){ return threadCount; } public Client(InetAddress ia){ threadCount++; id++; System.out.println("Making client: " + id); try{ s = new Socket(ia, Server.PORT); } catch (IOException e) {} try{ in = new BufferedReader(new InputStreamReader(s.getInputStream())); out = new PrintWriter(new BufferedWriter (new OutputStreamWriter(s.getOutputStream())), true); start(); }catch(IOException e1){ try{ s.close(); }catch(IOException e2){ System.out.println("Error in Client\n"); } } } public void run() { try{ String str; for(int i = 0; i < 5; i++) { out.println("Client #"+id+":"+i); str=in.readLine(); System.out.println("Client: send message#"+id+":"+i+"\n" +"Server reply: "+str); } out.println("end"); }catch(IOException e){ }finally{ try { s.close(); } catch (IOException e){} } } public static void main(String args[]) throws IOException, InterruptedException { InetAddress ia = InetAddress.getByName(null); //null mean localhost while(true){ if(getThreadCount() < MAX_THREADS) new Client(ia); else break; Thread.currentThread().sleep(10); } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。