以下实例演示了如何使用 Socket 类的 accept() 方法和 ServerSocket 类的 MultiThreadServer(socketname) 方法来实现多线程服务器程序:
- /*
- author by shouce.ren
- MultiThreadServer.java
- */
- import java.io.IOException;
- import java.io.PrintStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class MultiThreadServer implements Runnable {
- Socket csocket;
- MultiThreadServer(Socket csocket) {
- this.csocket = csocket;
- }
- public static void main(String args[])
- throws Exception {
- ServerSocket ssock = new ServerSocket(1234);
- System.out.println("Listening");
- while (true) {
- Socket sock = ssock.accept();
- System.out.println("Connected");
- new Thread(new MultiThreadServer(sock)).start();
- }
- }
- public void run() {
- try {
- PrintStream pstream = new PrintStream
- (csocket.getOutputStream());
- for (int i = 100; i >= 0; i--) {
- pstream.println(i +
- " bottles of beer on the wall");
- }
- pstream.close();
- csocket.close();
- }
- catch (IOException e) {
- System.out.println(e);
- }
- }
- }
以上代码运行输出结果为:
- Listening
- Connected