Server :
package javaapplication2;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer {
public static int onlineCount = 0;
MyServer() {
new Thread() {
public void run() {
while (true) {
try {
System.err.println("目前線上人數:" + onlineCount);
Thread.sleep(1000);
} catch (Exception e) {
}
}
}
}.start();
}
public static void main(String[] args) throws Exception {
new MyServer();
ServerSocket ss = new ServerSocket(80);
System.out.println("伺服器已啟動...");
while (true) {
Socket s = ss.accept();
Thread t = new Thread(new MyThread(s));
t.start();
}
}
}
class MyThread extends Thread {
Socket s;
MyThread(Socket s) {
this.s = s;
}
@Override
public void run() {
MyServer.onlineCount++;
try {
System.out.println(s.getRemoteSocketAddress() + " 已連線...");
BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter w = new PrintWriter(new OutputStreamWriter(s.getOutputStream()), true);
while (true) {
w.println("你好...我是伺服器,這是伺服器的訊息");
System.out.println(s.getRemoteSocketAddress() + " 傳遞的訊息是:" + r.readLine());
}
} catch (Exception e) {
System.err.println(s.getRemoteSocketAddress() + " 已離線");
}
MyServer.onlineCount--;
}
}
Client
package javaapplication2;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
new Thread() {
public void run() {
try {
Socket s = new Socket(InetAddress.getByName("163.15.202.74"), 1024);
BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter w = new PrintWriter(new OutputStreamWriter(s.getOutputStream()), true);
w.println("你好...我是客戶端");
System.out.println("從伺服器傳來的資料:" + r.readLine());
while (true) {
}
} catch (Exception e) {
}
}
}.start();
}
}
}
文章標籤
全站熱搜
