????????????????С???????java.net???е?Socket????????????????????????Socket?????getInputStream???????????????????????????Socket?????getOuputStream?????????????????????????????????????????????д???????????д?????

?????????????“????”?????????????????£?

package com.javapp.ch11;
 import java.io.*;
 import java.net.*;
 /**
 * Description:?????????“????”???????????
 */
 public class EchoServerThreadDemo {
     // ???????????????
     public static final int SERVERPORT = 990;
     public static void main(String[] args) {
         try {
             // ???????????????????
             int number = 1;
             // ??????????????????????
             ServerSocket s = new ServerSocket(SERVERPORT);
             System.out.println("Started: " + s);
             while (true) {
                 // ???????????????????????????
                 Socket incoming = s.accept();
                 System.out.println("Connection " + number + " accepted: ");
                 System.out.println(incoming);
                 // ??????????????з????????????????????
                 // ??????????????????????????
                 Thread t = new EchoThread(incoming??number);
                 t.start();
                 number++;
             }
         } catch (IOException e) {
             System.err.println("IOException");
         }
     }
 }
 class EchoThread extends Thread {
     private Socket s;
     int n;
     public EchoThread(Socket incoming??int number) {
         s = incoming;
         n = number;
     }
     public void run() {
         try {
             // ????????????????????
             BufferedReader in = new BufferedReader(new InputStreamReader(s
                     .getInputStream()));
             // ?????????????????μ????????
             PrintWriter out = new PrintWriter(new BufferedWriter(
                     new OutputStreamWriter(s.getOutputStream()))??true);
             System.out.println("Hello! Enter BYE to exit.");
             // ?????????????
             while (true) {
                 // ??????????????У?????????????????
                 String line = in.readLine();
         // ?????????????????????????Enter????????????????????????????????
                 if (line == null) {
                     break;
                 } else {
                     if (line.trim().equals("BYE")) {
                         System.out.println("The client " + n + " entered BYE!");
                         System.out.println("Connection " + n + " will be closed!");
                         break;
                     }
                     System.out.println("Echo " + n + ": " + line);
                     // ???????????????У?????????????????
                     out.println("Echo " + n + ": " + line);
                 }
             }
             // ?????????
             s.close();
         } catch (IOException e) {
             System.err.println("IOException");
         }
     }
 }

?????????????????У???????java.net???е?ServerSocket???????????????????????????????ServerSocket???accept???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????