java總用Socket 基於tcp通信模擬

/*

 * 基於TCP協議的socket通信,實現用戶登錄

 */

public class ServerMain1 {

public static void main(String[] args) {

try {

//1.創建一個服務器端的Socket,ServerSocket ,指定綁定的端口,並監聽此端口

ServerSocket serverSocket=new ServerSocket(8888);//端口已設置1023以後的端口

//2.調用accept()方法開始監聽,等待客戶端連接

System.out.println("*****服務器即將啓動,等待客戶端的連接*******");

Socket socket=serverSocket.accept();

//3.獲取輸入流,並讀取客戶端信息

InputStream is=socket.getInputStream();

//4.將字節流包裝爲字符流

InputStreamReader isr=new InputStreamReader(is);

//5.爲字符流添加緩衝區

BufferedReader br=new BufferedReader(isr);

String info=null;

while((info=br.readLine())!=null)

{

System.out.println("我是服務器,客戶端說"+info);

}

socket.shutdownInput();//關閉讀取流

OutputStream os=socket.getOutputStream();

PrintWriter pw=new PrintWriter(os);

pw.write("歡迎你的登陸!!!");

pw.flush();//刷新緩存

pw.close();

os.close();

br.close();

isr.close();

is.close();

socket.close();

serverSocket.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

-----------------------

public class ClientMain1 {

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);//將輸入流包裝爲打印流

pw.write("用戶名:admin;密碼:132");

pw.flush();

socket.shutdownOutput();

InputStream is=socket.getInputStream();

//4.將字節流包裝爲字符流

InputStreamReader isr=new InputStreamReader(is);

//5.爲字符流添加緩衝區

BufferedReader br=new BufferedReader(isr);

String info=null;

while((info=br.readLine())!=null)

{

System.out.println("我是客戶端,服務說:"+info);

}

//關閉資源

br.close();

isr.close();

is.close();

pw.close();

os.close();

socket.close();

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


}

注:(運行實例時,請先運行ServerMain1然後在運行ClientMain1,簡單的實現服務端接受客戶端發送的數據並相應客戶端。運行環境jdk1.6)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章