serverdemo.java~10~

来自「服务器聊天室编写 c/s」· JAVA~10~ 代码 · 共 85 行

JAVA~10~
85
字号
package serverdemo;

import javax.swing.UIManager;

import java.net.*;
import java.io.*;

public class ServerDemo{
  public static void main(String[] args)throws IOException{
    ServerSocket serverSocket = null;
    try{
      serverSocket = new ServerSocket(9998);
    }catch(IOException e){
      System.err.println("不能创建1111端口");
      System.exit(1);
    }
    while(true){
      Socket clientSocket = null;
      try {
        clientSocket = serverSocket.accept();
      }
      catch (IOException e) {
        System.err.println("访问端口失败");
        System.exit(1);
      }
    (new ClientThread(clientSocket)).start();
    }
    serverSocket.close();
}
class  ClientThread extends Thread{
  Socket clientSocket = null;
  PrintWriter out = null;
  BufferedReader in = null;
  boolean runable = true;

  public ClientThread(Socket clientSocket){
    this.clientSocket = clientSocket;
  }
  public void run(){
    String toClient;
    try{
      out = new PrintWriter(clientSocket.getOutputStream(), true);
      in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
      BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
      toClient = "您好";
      out.println(toClient);
      ReadClientThread readClientThread = new ReadClientThread(in);
      readClientThread.start();
      while (runable) {
        toClient = stdIn.readLine();
        out.println(toClient);
        if (toClient.equals("Bye"))break;
        runable = readClientThread.runable;
      }
      readClientThread.fromClient = "欢迎下次再来";
      readClientThread.runable = false;
      out.close();
      in.close();
      stdIn.close();
      clientSocket.close();
    }catch(Exception e){e.printStackTrace();}
  }
}
class ReadClientThread extends Thread{
  BufferedReader in = null;
  String fromClient = "";
  boolean runable = true;
  public ReadClientThread(BufferedReader in){
    this.in = in;
  }
  public void run(){
    while(runable){
      try{fromClient = in.readLine();}catch(Exception e){runable = false;}
      if(fromClient.equals("Bye")){
        System.out.print("客户端程序退出");
        runable = false;
        break;

      }
      System.out.println("客户端" + fromClient);
    }
  }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?