一个非常简单的服务器程序:
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class AdviceServer {
String[] adviceList = {"Take smaller bites", "Go for the tight jeans. No they do NOT make you look fat",
"One word: inappropriate", "Just for today, be honest. Tell your boss what you *really* think",
"You might want to rethink that haircut"};
public void go() {
try {
ServerSocket serverSocket = new ServerSocket(4200);
while(true) {
Socket socket = serverSocket.accept();
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
String advice = getAdvice();
printWriter.println(advice);
printWriter.close();
System.out.println(advice);
}
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
private String getAdvice() {
int random = (int) (Math.random() * adviceList.length);
return adviceList[random];
}
public static void main(String[] args) {
AdviceServer adviceServer = new AdviceServer();
adviceServer.go();
}
}
执行 new ServerSocket(4200) 时,服务器应用程序在告知服务器,4200 端口被我绑定了,嗯。
ServerSocket serverSocket = new ServerSocket(4200);
进入 while(true) 循环时,执行 serverSocket.accept(); 等待 socket 连接,等啊等。连接上时,继续 while 循环,一直到 sysout 结束,重新执行 while 循环的第一步,执行serverSocket.accept(); 等待 socket 连接,,,,如此如此,一直执行,这,就是服务器应用程序,任劳任怨。。。