threadedechoserver.java

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

JAVA
77
字号
package com.henry.networking;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class ThreadedEchoServer {

	/**
	 * @param args
	 */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try{
			int i = 1;
			ServerSocket s = new ServerSocket(8189);
			while(true){
				Socket incoming = s.accept();
				System.out.println("连接数:"+i);
				Runnable r = new ThreadedEchoHandler(incoming,i);
				Thread t = new Thread(r);
				t.run();
				i++;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}
class ThreadedEchoHandler implements Runnable{
	
	private Socket incoming;
	private int counter;
	public ThreadedEchoHandler(Socket i,int c){
		incoming = i;
		counter = c;
	}
	public void run(){
		try{
			InputStream inStream = incoming.getInputStream();
			OutputStream outStream = incoming.getOutputStream();
			
			Scanner  in = new Scanner(inStream);
			PrintWriter out = new PrintWriter(outStream,true);//自动刷新
			out.println("你好吴斌,输入BYE推出");
			
			//处理客户端的输入
			boolean done = false;
			while(!done&&in.hasNextLine()){
				String line = in.nextLine();
				out.println("客户: " + line);
				if(line.trim().equals("BYE")){
					done = true;
				}
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				incoming.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}


⌨️ 快捷键说明

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