threadedechoserver.java

来自「java socket编程的演示程序」· Java 代码 · 共 70 行

JAVA
70
字号
package socket;

import java.io.*;
import java.net.*;
import java.util.Scanner;

public class ThreadedEchoServer {
	public static void main(String[] args)
	{
		try
		{
			int i=1;
			ServerSocket s=new ServerSocket(8189);
			while(true)
			{
				Socket incoming=s.accept();
				System.out.println("Spawning "+i);
				Runnable r=new ThreadedEchoHandler(incoming,i);
				Thread t=new Thread(r);
				t.start();
				i++;
			}
		}catch(IOException e)
		{
			e.printStackTrace();
		}
	}
}

class ThreadedEchoHandler implements Runnable
{
	Socket incoming;
	int counter;
	public ThreadedEchoHandler(Socket i,int c)
	{
		incoming=i;counter=c;
	}
	public void run()
	{
		try
		{
			try{
				InputStream inStream=incoming.getInputStream();
				OutputStream outStream=incoming.getOutputStream();
				
				BufferedReader in=new BufferedReader(new InputStreamReader(inStream));
				PrintStream out=new PrintStream(outStream);
				
				out.println("Hello!Enter BYE to exit.");
				
				boolean done=false;
				while(!done)
				{
					String line=in.readLine();
					out.println("Echo: "+line);
					if(line.trim().equals("BYE"))
						done=true;
				}
			}
			finally
			{
				incoming.close();
			}
		}catch(IOException e)
		{
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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