//server类------------------------ import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; public class Server { public static void main(String[] args) { try { // 从txt文件中读取数据放入数组中 //int i = 0; //String[] string = new String[3000]; List<String> string = new ArrayList<String>(); BufferedReader brr = new BufferedReader(new InputStreamReader( new FileInputStream(new File("F:\\Workspaces\\glxt2\\test\\simple\\21cn.txt")))); String data; while ((data = brr.readLine()) != null) { string.add(data.trim()); } for(String s:string){ System.out.println(s+ " "); } ServerSocket ss = new ServerSocket(4001); while (true) { Socket s = ss.accept(); System.out.println("new connection accepted."); new Thread(new ClientService(string,s)).start(); } } catch (IOException e) { e.printStackTrace(); } } } class ClientService implements Runnable{ private List<String> string; private Socket socket; BufferedReader bd; DataOutputStream pw; public ClientService(List<String> string, Socket socket) { this.string = string; this.socket = socket; } public void run() { try { bd = new BufferedReader(new InputStreamReader(socket .getInputStream())); pw = new DataOutputStream(socket.getOutputStream()); while (true) { String temp = bd.readLine(); System.out.println("server:"+temp); for (int m = 0; m < string.size(); m++) { if (string.get(m).equals(temp + "Y")) { pw.writeUTF("Y"); pw.flush(); } else if (string.get(m).equals(temp + "N")) { pw.writeUTF("N"); pw.flush(); } else { pw.writeUTF("T"); pw.flush(); } } if (temp.equals("nihao")) { pw.writeUTF("Y"); pw.writeUTF("+"); pw.flush(); } else { pw.writeUTF("N"); pw.writeUTF("+"); pw.flush(); } } } catch (IOException e) { e.printStackTrace(); } finally{ try { if(bd != null)bd.close(); if(pw != null)pw.close(); if(socket != null)socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } //server类结束------------------------ import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) { try { Socket s = new Socket("127.0.0.1", 4001); if (s != null) { // BufferedReader bd = new BufferedReader(new InputStreamReader(s // .getInputStream())); DataInputStream bd = new DataInputStream(s.getInputStream()); PrintWriter pw = new PrintWriter(s.getOutputStream()); BufferedReader inSystem = new BufferedReader( new InputStreamReader(System.in)); while (true) { String str = inSystem.readLine(); pw.println(str); pw.flush(); String inServer = bd.readUTF(); System.out.println("client: server back> "+inServer); if (inServer.equalsIgnoreCase("bye")) { bd.close(); pw.close(); inSystem.close(); break; } } } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Socket通信
最新推荐文章于 2025-09-12 23:59:09 发布