以下實(shí)例演示了如何使用 Socket 類(lèi)的 accept() 方法和 ServerSocket 類(lèi)的 MultiThreadServer(socketname) 方法來(lái)實(shí)現(xiàn)多線程服務(wù)器程序:
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);
}
}
}
以上代碼運(yùn)行輸出結(jié)果為:
Listening
Connected
以上就是我的分享,覺(jué)得有收獲的朋友們可以點(diǎn)個(gè)關(guān)注哦,想學(xué)習(xí)更多的Java技術(shù)方面的朋友們可以進(jìn)我的一個(gè)Java高級(jí)架構(gòu)師交流群责语,里面有里面有高可用到旦、高并發(fā)巫糙、高性能及分布式摄狱、Jvm性能調(diào)優(yōu)而咆、Spring源碼胖腾,MyBatis烟零,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料,QQ群:680075317咸作,也可以進(jìn)群一起交流锨阿,比如遇到技術(shù)瓶頸、面試不過(guò)的记罚,大家一些交流學(xué)習(xí)墅诡!