2017年1月2日 星期一

[JAVA] 網路應用 ServerSocket與Socket


網路應用分成用戶端與伺服器端,JAVA的伺服器端需使用ServerSocket來實現,用戶端則使用Socket實現。
這邊只有示範單純的連線,成功連線後就馬上斷開連線了。




伺服器端:ServerSocketEX.java
import java.io.*;
import java.net.*;
public class ServerSocketEX{
        static int port = 0;
        public static void main(String[] args){
                if(args.length == 0){                //判斷是否有輸入變數,沒有的話就以2468port
                        port = 2468;   
                }else{
                        port = Integer.parseInt(args[0]);
                }
                try{          //需使用try-catch接收IOException
                        ServerSocket server = new ServerSocket(port);     //建立ServerSocket物件
                        System.out.println("Server is created,waiting client...");
                        Socket client = server.accept();      //執行accept方法接受用戶端的請求,建立Socket型態的物件Client
                        System.out.println("Client is connected:" + client.getInetAddress());    //取得用戶端的ip並印出
                        client.close();  //關閉用戶端
                }catch(IOException er){
                        System.out.println(er.toString());   //列印錯誤訊息
                }
        }
}

用戶端:ClientEX.java
import java.io.*;
import java.net.*;
public class ClientEX{
        static int port = 0;
        static String serverip="192.168.42.50";  //這裡輸入伺服器端ip
        public static void main(String[] args){
                if(args.length == 0){                //判斷是否有輸入變數,沒有的話就以2468port
                        port=2468;
                }else{
                        port=Integer.parseInt(args[0]);
                }
                try{
                        Socket client=new Socket(serverip,port);       //建立以Socket型態的物件Client
                        client.close();  //關閉Client連線
                }catch(IOException er){
                        System.out.println(er.toString());
                }
        }

}
以下為伺服器端的畫面


小提示:想知道ip可以再命令提示字元裡下ipconfig這個命令。


如果您喜歡我的文章,請在文章最末按5下Like!
我將得到LikeCoin的回饋:)

回饋由LikeCoin基金會出資,您只要註冊/登入帳號(FB、Google帳號都可以註冊,流程超快),按L五次左鍵,可以贊助我的文章且完全不會花到錢!
支持創作,正向交流:)

沒有留言:

張貼留言