標籤:
//用戶端package test;import java.io.*;import java.net.*;import java.applet.Applet;public class TalkServer{public static void main(String args[]) {try{ServerSocket server=null;try{server=new ServerSocket(4700);//建立一個ServerSocket在連接埠4700監聽客戶請求}catch(Exception e) {System.out.println("can not listen to:"+e);//出錯,列印出錯資訊}Socket socket=null;try{socket=server.accept();//使用accept()阻塞等待客戶請求,有客戶//請求到來則產生一個Socket對象,並繼續執行}catch(Exception e) {System.out.println("Error."+e);//出錯,列印出錯資訊}String line;BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));//由Socket對象得到輸入資料流,並構造相應的BufferedReader對象PrintWriter os=new PrintWriter(socket.getOutputStream());//由Socket對象得到輸出資料流,並構造PrintWriter對象BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));//由系統標準輸入裝置構造BufferedReader對象System.out.println("Client:"+is.readLine());//在標準輸出上列印從用戶端讀入的字串line=sin.readLine();//從標準輸入讀入一字串while(!line.equals("bye")){//如果該字串為 "bye",則停止迴圈os.println(line);//向用戶端輸出該字串os.flush();//重新整理輸出資料流,使Client馬上收到該字串System.out.println("Server:"+line);//在系統標準輸出上列印讀入的字串System.out.println("Client:"+is.readLine());//從Client讀入一字串,並列印到標準輸出上line=sin.readLine();//從系統標準輸入讀入一字串}//繼續迴圈os.close(); //關閉Socket輸出資料流is.close(); //關閉Socket輸入資料流socket.close(); //關閉Socketserver.close(); //關閉ServerSocket}catch(Exception e){System.out.println("Error:"+e);//出錯,列印出錯資訊}}}} //伺服器package test;import java.io.*;import java.net.*;public class TalkClient {public static void main(String args[]) {try{Socket socket=new Socket("127.0.0.1",4700);//向原生4700連接埠發出客戶請求BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));//由系統標準輸入裝置構造BufferedReader對象PrintWriter os=new PrintWriter(socket.getOutputStream());//由Socket對象得到輸出資料流,並構造PrintWriter對象BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));//由Socket對象得到輸入資料流,並構造相應的BufferedReader對象String readline;readline=sin.readLine(); //從系統標準輸入讀入一字串while(!readline.equals("bye")){//若從標準輸入讀入的字串為 "bye"則停止迴圈os.println(readline);//將從系統標準輸入讀入的字串輸出到Serveros.flush();//重新整理輸出資料流,使Server馬上收到該字串System.out.println("Client:"+readline);//在系統標準輸出上列印讀入的字串System.out.println("Server:"+is.readLine());//從Server讀入一字串,並列印到標準輸出上readline=sin.readLine(); //從系統標準輸入讀入一字串} //繼續迴圈os.close(); //關閉Socket輸出資料流is.close(); //關閉Socket輸入資料流socket.close(); //關閉Socket}catch(Exception e) { System.out.println(e);//出錯,則列印出錯資訊}}}
java socket編程簡單範例(用戶端+伺服器)