以下實例演示了如何使用 Socket 類的 accept() 方法和 ServerSocket 類的 MultiThreadServer(socketname) 方法來實現多線程服務器程序:
Main.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高級架構師交流群,里面有里面有高可用、高并發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料,QQ群:680075317,也可以進群一起交流,比如遇到技術瓶頸、面試不過的,大家一些交流學習!