我的老师向我们展示了实现多线程应用服务器的代码,但我有点困惑。这是多线程服务器的实现吗?我不明白是不是这样。
我们假设要创建一个对象Server s = new Server(port_number)
。我们可以断言它是一个多线程服务器吗?
import java.io.*;
import java.net.*;
public class Server implements Runnable
{
private ServerSocket serverSocket;
public MainCenterServer(int port){
try
{
this.serverSocket = new ServerSocket(port);
}
catch(IOException ioe) {ioe.printStackTrace(); }
new Thread(this, "Server").start();
}
@Override
public void run()
{
while(true)
{
try
{
Socket socket = serverSocket.accept();
}
catch(IOException ioe) {ioe.printStackTrace(); }
}
}
}
答案 0 :(得分:1)
根据您对多线程服务器的定义,是的,此服务器是多线程的。
new Thread(this, "Server").start()
为run()
方法创建一个单独的线程来执行。由于run
方法具有无限循环,因此始终等待客户端接受(Socket socket = serverSocket.accept()
)。