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();
        }

    }
}
arrow
arrow
    全站熱搜

    黃彥霖 發表在 痞客邦 留言(0) 人氣()