java简单的TCP服务程序
tcp服务器代码如下:
import java.net.*; public class ReserveServer { public static void main(String[] args) { // 用户可自行指定端口号 try { ServerSocket ss; if (args.length < 1) { ss = new ServerSocket(8888); } else { ss = new ServerSocket(Integer.parseInt(args[0])); } while (true) { Socket s = ss.accept(); new Thread(new Servicer(s)).start(); } } catch (Exception e) { e.printStackTrace(); } } }
Servicer类如下:
import java.net.*; import java.io.*; public class Servicer implements Runnable { private Socket s; public Servicer(Socket s) { this.s = s; } public void run() { try { InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); BufferedReader bufReader = new BufferedReader(new InputStreamReader(is)); PrintWriter printWriter = new PrintWriter(os, true); while (true) { String info = bufReader.readLine(); if (info.equalsIgnoreCase("quit")) { break; } String result = new StringBuffer(info).reverse().toString(); printWriter.println(info + " --> " + result); } bufReader.close(); printWriter.close(); s.close(); } catch (Exception e) { e.printStackTrace(); } } }
客户端代码如下:
import java.net.*; import java.io.*; public class TcpClient { public static void main(String[] args) { if (args.length < 2) { printUsage(); } try { Socket s = new Socket(args[0], Integer.parseInt(args[1])); InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); BufferedReader bufNet = new BufferedReader(new InputStreamReader(is)); PrintWriter prtWriter = new PrintWriter(os, true); BufferedReader bufKeyBoard = new BufferedReader(new InputStreamReader(System.in)); while (true) { String input = bufKeyBoard.readLine(); prtWriter.println(input); if (input.equalsIgnoreCase("quit")) { break; } System.out.println(bufNet.readLine()); } prtWriter.close(); bufNet.close(); bufKeyBoard.close(); s.close(); } catch (Exception e) { e.printStackTrace(); } } private static void printUsage() { System.out.println("Usage : java TcpClient ServerIP ServerPort"); } }