JAVA學習筆記(六十)- 網路編程登入執行個體,java學習筆記

來源:互聯網
上載者:User

JAVA學習筆記(六十)- 網路編程登入執行個體,java學習筆記
用戶端

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;/* * 用戶端 */public class LoginClient {    public static void main(String[] args) {        try {            //1.建立用戶端Socket,指定伺服器位址和連接埠號碼,同時建立串連            Socket socket=new Socket("localhost", 8888);            //2.擷取輸出資料流,向伺服器發送資訊            OutputStream os=socket.getOutputStream();            //PrintWriter pw=new PrintWriter(os);//封裝為列印流            ObjectOutputStream oos=new ObjectOutputStream(os);            User user=new User("admin", "123");            oos.writeObject(user);//序列化對象            socket.shutdownOutput();//關閉當前輸出資料流            //3.擷取輸入資料流,並讀取伺服器端的響應資訊            InputStream is=socket.getInputStream();            BufferedReader br=new BufferedReader(new InputStreamReader(is));            String reply=br.readLine();            while(reply!=null){                System.out.println("我是用戶端,伺服器說:"+reply);                reply=br.readLine();            }            socket.shutdownInput();            //4.關閉資源            br.close();            is.close();            oos.close();            os.close();            socket.close();        } catch (UnknownHostException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}
標題
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/* * 伺服器端 */public class LoginServer {    public static void main(String[] args) {        try {            ServerSocket serverSocket=new ServerSocket(8888);            System.out.println("******伺服器即將啟動,等待用戶端的串連");            int count=0;//統計用戶端數量            // 迴圈監聽等待用戶端的串連            while(true){                Socket socket=serverSocket.accept();                //建立一個新的線程                ServerThread thread=new ServerThread(socket);                thread.start();//啟動線程                count++;                System.out.println("用戶端數量:"+count);                System.out.println("用戶端IP:"+socket.getInetAddress().getHostAddress());            }        } catch (IOException e) {            e.printStackTrace();        }     }}
伺服器端線程處理類
import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;/* * 伺服器端線程處理類 */public class ServerThread extends Thread {    //與本線程相關的Socket    Socket socket=null;    public ServerThread(Socket socket){        this.socket=socket;    }    //線程執行的操作    @Override    public void run() {        InputStream is=null;        ObjectInputStream ois=null;        OutputStream os=null;        PrintWriter pw=null;        try {            is=socket.getInputStream();//位元組流            ois=new ObjectInputStream(is);            User user=(User) ois.readObject();            System.out.println("使用者名稱:"+user.getUsername());            System.out.println("密碼:"+user.getPassword());            socket.shutdownInput();//關閉當前輸入資料流            os=socket.getOutputStream();            pw=new PrintWriter(os);            pw.println("歡迎您!");            pw.flush();            socket.shutdownOutput();        } catch (IOException e) {            e.printStackTrace();        } catch (ClassNotFoundException e) {            e.printStackTrace();        } finally{            try {                if(pw!=null)                    pw.close();                if(os!=null)                    os.close();                if(ois!=null)                    ois.close();                if(is!=null)                    is.close();                socket.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}
標題
import java.io.Serializable;/* * 實體類User */public class User implements Serializable {    private static final long serialVersionUID = 6682618522883563864L;    private int id;    private String username;    private String password;    public User() {        super();    }    public User(String username, String password) {        super();        this.username = username;        this.password = password;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public static long getSerialversionuid() {        return serialVersionUID;    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.