Java socket程式設計除錯服務端收發小工具
阿新 • • 發佈:2020-12-10
javac RuphyServer.java -encoding utf-8
javaRuphyServer
RuphyServer.java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class RuphyServer {
ServerSocket serverSocket;
private String msg;
public RuphyServer(int port) {
try {
serverSocket = new ServerSocket(port);
System.out.println("伺服器已經啟動,監聽埠是:" + port);
} catch (IOException e) {
e.printStackTrace();
}
}
public void listen() throws IOException {
while (true) {
Socket socket = serverSocket.accept();
new Thread(new ConnectProcess(socket)).start();
}
}
static class ConnectProcess implements Runnable {
private final Socket socket;
public ConnectProcess(Socket socket) throws IOException {
this.socket = socket;
}
@Override
public void run() {
try {
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStream.read(buffer)) > 0) {
String msg = new String(buffer, 0, len);
System.out.println("收到訊息:" + msg);
outputStream.write((msg).getBytes());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException {
if(args.length > 0){
for (int i = 0; i < args.length; i++) {
int port = Integer.valueOf(args[i]);
new Thread(new Runnable() {
@Override
public void run() {
try {
new BioServer(port).listen();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
for (int i = 0; i < 20; i++) {
int port = 8090+i;
new Thread(new Runnable() {
@Override
public void run() {
try {
new BioServer(port).listen();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
System.in.read();
}
}