Latest web development tutorials

Java 實例– Socket 實現多線程服務器程序

Java 實例 Java實例

以下實例演示瞭如何使用Socket 類的accept() 方法和ServerSocket 類的MultiThreadServer(socketname) 方法來實現多線程服務器程序:

/*
 author by w3cschool.cc
 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

Java 實例 Java實例