chatserver.java

来自「贪食蛇的实现源码」· Java 代码 · 共 60 行

JAVA
60
字号
package com.henry.networkings;

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

public class ChatServer {
    public static void main(String[] args) {
        try {
            int i = 1;

            //1. create a Server socket 
            ServerSocket s = new ServerSocket(2500);
            System.out.println("Server waiting for client on port 1500.") ;
          
            for(;;) {  // multiThreads can start
                 //2. create a socket for incoming client(accept)
                Socket incoming = s.accept();  //get socket for client  每个client一个socket
                Thread t = new MultiHandler (incoming, i);    //每个client一个Thread
               
                t.start() ;  //启动Thread, call run()
                i++;
            }           
        }
        catch(Exception e) {e.printStackTrace();}
    }
}

class MultiHandler  extends  Thread{
    Socket incoming;
    int    counter;  

    public MultiHandler() {}
    public MultiHandler(Socket s, int c) {
        incoming = s;
        counter = c;
    }

    public void run() {
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
           
   	    while(true) {
                //3. read  data from client  through socket 
                String str = in.readLine() ;
                if ((str == null) || str.equalsIgnoreCase("BYE")) 
		      break;
                
                System.out.println(counter + "  " + str) ;  //print to screen                
            }
            in.close() ; 
        }catch(Exception e) {
              System.out.println();
        }finally {
            try {               
                incoming.close();            
            }catch (Exception e) {System.out.println();}
        }

    }
}

⌨️ 快捷键说明

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