JAVA中-面向網路程式設計---單層互動
阿新 • • 發佈:2018-12-04
面向網路程式設計---單層互動:
客戶端說明:
- /*
- * 實現TCP客戶端,連結到伺服器
- * 和伺服器實現資料互動
- * 實現TCP客戶端的類 java.net.Scoket
- * 構造方法:
- * Socket sco = new Sockte( String ip ,int 埠號);
- * 注意:這個構造方法只要執行就會去查詢 伺服器 如果連結失敗 就會丟擲異常
- * OutputStream getOutputStream() 這個方法是返回套接字的輸出流
- * 注意:這個輸出流 是將資料 輸出伺服器
- * InputStream getInputStream(); 這個方法 返回 套接字的輸入流
- * 注意: 這個輸入流 從伺服器中讀取資料
- *
- * 如果要實現 客戶端與伺服器端的互動 必須有使用Socket套接字的 流 自己例項化的流不可以!!!
- *
- * */
客戶端程式碼:
- public static void main(String[] args) throws Exception {
- //建立Socket 物件 連結伺服器
- Socket socket = new Socket("127.0.0.1", 8888);
- //通過套接字 物件Socket 獲取 輸出流 將 資料寫入伺服器
- OutputStream out = socket.getOutputStream();
- //向伺服器寫入資料
- out.write("咕咕咕-買了否冷".getBytes());
- //關閉資料
- //socket.close();
- socket.shutdownOutput();
- }
伺服器說明:
- /*
- * 實現TCP伺服器程式
- * 表示伺服器程式的類 java.net.ServerSocket
- * 構造方法:
- * ServerSocket(int 埠);
- * **必須要獲得客戶端的套接字物件 Socket
- * Socket socket = server.accept();
- * */
伺服器程式碼:
- public static void main(String[] args) throws Exception{
- //建立ServerSocket 物件
- ServerSocket server = new ServerSocket(8888);
- //呼叫伺服器套接字 物件 中的方法accept();
- Socket socket = server.accept();
- try {
- InputStream in = socket.getInputStream();
- int len = 0;
- byte[] bytes = new byte[1024];
- while((len = in.read(bytes)) != -1){
- System.out.println(new String(bytes, 0, len));
- }
- } catch (Exception e) {
- throw new RasterFormatException("從伺服器讀取發生異常-原因 伺服器可能關閉了流物件");
- }
- }