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 + -
显示快捷键?