image.png

    1. import java.io.BufferedReader;
    2. import java.io.IOException;
    3. import java.io.InputStreamReader;
    4. import java.io.PrintWriter;
    5. import java.net.ServerSocket;
    6. import java.net.Socket;
    7. /**
    8. * 定义消息处理线程
    9. */
    10. class Msg extends Thread {
    11. private Socket socket;
    12. public Msg(Socket socket){
    13. this.socket=socket;
    14. }
    15. @Override
    16. public void run() {
    17. this.msg();
    18. }
    19. private void msg(){
    20. BufferedReader bufferedReader = null;
    21. PrintWriter printWriter = null;
    22. try{
    23. bufferedReader= new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
    24. printWriter= new PrintWriter(this.socket.getOutputStream());
    25. while(true){
    26. printWriter.println(bufferedReader.readLine()+" [ok]");
    27. printWriter.flush();
    28. }
    29. }catch (Exception e){
    30. try {
    31. System.out.println(this.socket.getInputStream()+"断线了");
    32. } catch (IOException ex) {
    33. ex.printStackTrace();
    34. }finally {
    35. if(bufferedReader!=null){
    36. try {
    37. bufferedReader.close();
    38. } catch (IOException ex) {
    39. ex.printStackTrace();
    40. }
    41. }
    42. if(printWriter!=null){
    43. printWriter.close();
    44. }
    45. }
    46. }
    47. }
    48. }
    49. public class EchoServer {
    50. public static void main(String[] args) {
    51. ServerSocket serverSocket = null;
    52. try{
    53. System.out.println("服务器启动,开始监听。。。。");
    54. serverSocket= new ServerSocket(8888);
    55. while(true){
    56. Socket socket = serverSocket.accept();
    57. new Msg(socket).start();
    58. System.out.println("连接成功!!");
    59. }
    60. }catch (Exception e){
    61. e.printStackTrace();
    62. }finally {
    63. if(serverSocket!=null){
    64. try {
    65. serverSocket.close();
    66. } catch (IOException e) {
    67. e.printStackTrace();
    68. }
    69. }
    70. }
    71. }
    72. }