Java 实例 - Socket 实现多线程服务器程序


以下实例演示了如何使用 Socket 类的 accept() 方法和 ServerSocket 类的 MultiThreadServer(socketname) 方法来实现多线程服务器程序:

  1. /*
  2. author by shouce.ren
  3. MultiThreadServer.java
  4. */
  5.  
  6. import java.io.IOException;
  7. import java.io.PrintStream;
  8. import java.net.ServerSocket;
  9. import java.net.Socket;
  10.  
  11. public class MultiThreadServer implements Runnable {
  12. Socket csocket;
  13. MultiThreadServer(Socket csocket) {
  14. this.csocket = csocket;
  15. }
  16.  
  17. public static void main(String args[])
  18. throws Exception {
  19. ServerSocket ssock = new ServerSocket(1234);
  20. System.out.println("Listening");
  21. while (true) {
  22. Socket sock = ssock.accept();
  23. System.out.println("Connected");
  24. new Thread(new MultiThreadServer(sock)).start();
  25. }
  26. }
  27. public void run() {
  28. try {
  29. PrintStream pstream = new PrintStream
  30. (csocket.getOutputStream());
  31. for (int i = 100; i >= 0; i--) {
  32. pstream.println(i +
  33. " bottles of beer on the wall");
  34. }
  35. pstream.close();
  36. csocket.close();
  37. }
  38. catch (IOException e) {
  39. System.out.println(e);
  40. }
  41. }
  42. }

以上代码运行输出结果为:

  1. Listening
  2. Connected