📄 musicdataserver.java
字号:
import java.io.*;
import java.net.*;
import java.util.*;
/**
*
* 数据服务器类
*/
public class MusicDataServer implements StoneForestProtocol {
protected ServerSocket myServerSocket;
protected MusicDataAccessor myMusicDataAccessor;
protected boolean done;
public MusicDataServer() {
this(StoneForestProtocol.DEFAULT_PORT);
}
public MusicDataServer(int thePort) {
try {
done = false;
log("启动服务器 " + thePort);
myServerSocket = new ServerSocket(thePort);
myMusicDataAccessor = new MusicDataAccessor();
log("\n服务器准备就绪!");
listenForConnections();
}
catch (IOException exc) {
log(exc);
System.exit(1);
}
}
protected void listenForConnections() {
Socket clientSocket = null;
Handler aHandler = null;
try {
while (!done) {
log("\n等待请求...");
clientSocket = myServerSocket.accept();
String clientHostName = clientSocket.getInetAddress().getHostName();
log("收到连接: " + clientHostName);
aHandler = new Handler(clientSocket, myMusicDataAccessor);
aHandler.start();
}
}
catch (IOException exc) {
log("listenForConnections()中发生异常: " + exc);
}
}
protected void log(Object msg) {
System.out.println("MusicDataServer类: " + msg);
}
//主方法, 启动服务器
public static void main(String[] args) {
MusicDataServer myServer;
if (args.length == 1) {
int port = Integer.parseInt(args[0]);
myServer = new MusicDataServer(port);
}
else {
myServer = new MusicDataServer();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -