Java服务器多线程 [英] Java server multithreading

查看:176
本文介绍了Java服务器多线程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Java中实现多线程服务器?其中服务器侦听端口(例如5000),并在单独的线程中提供连接,并继续侦听更多的客户端。

How to implement a multi-threaded server in Java? where the server listens for a port (for example 5000) and serves the connection in a separate thread and keeps listening for more clients.

推荐答案

p>这是一个典型的例子:

Here is a typical example:

ServerSocket ss = new ServerSocket(port);
ExecutorService executor = Executors.newCachedThreadPool();

while(true)
{
    Socket s = ss.accept();
    Runnable r = new TaskImplementsRunnable(s);
    executor.submit(r)
}





public class TaskImplementsRunnable implements Runnable
{
    private Socket socket;

    public TaskImplementsRunnable(Socket socket)
    {
        this.socket = socket;
    }

    @Override
    public void run()
    {
        try
        {
            PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader reader = new BufferedReader(new  InputStreamReader(socket.getInputStream()));

            String command;
            while((command = reader.readLine()) != null)
            {
                if(command.equalsIgnoreCase("command 1"))
                {
                    writer.println("This is command 1!");
                }
                else if(command.equalsIgnoreCase("command 2"))
                {
                    writer.println("This is command 2!");
                }
                else if(command.equalsIgnoreCase("exit"))
                {
                    break;
                }
                else
                {
                    writer.println("This is unknown command!");
                }
            }
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }

        try
        {
            writer.close();
            reader.close();
        }
        catch(IOException e){}
    }
}

这篇关于Java服务器多线程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆