Socket網絡通信之數據傳遞


Socket通信的步驟:
  1.創建ServerSocket和Socket
  2.打開連接到Socket的輸入/輸出流
  3.按照協議對Socket進行讀/寫操作
  4.關閉輸入輸出流、關閉Socket
服務器端:
  1.創建ServerSocket對象,綁定監聽端口
  2.通過accept()方法監聽客戶端請求
  3.連接建立后,通過輸入流讀取客戶端發送的請求信息
  4.通過輸出流向客戶端發送相應的信息
  5.關閉相關資源
客戶端:
  1.創建Socket對象,指明需要連接的服務器的地址和端口號
  2.連接建立后,通過輸出流想服務器端發送請求信息
  3.通過輸入流獲取服務器響應的信息
  4.關閉響應資源 

1.Server服務器

 

import java.io.*;
import java.net.*;

  public class TestServer {
      public static void main(String args[]) {   
          ServerSocket s = null;  
          try {         
              s = new ServerSocket(8888);  //建立服務器ServerSocket
              } catch (IOException e) {  }  
          while (true) {        
              try {
                  Socket s1 = s.accept();  //通過accept()方法監聽客戶端請求

                  OutputStream os = s1.getOutputStream();  //輸出流
                  DataOutputStream dos = new DataOutputStream(os);   
                  dos.writeUTF("Hello,I am Socket!  bye bye!");  //傳遞信息,一句話
                  dos.close();
                  s1.close();       
                  } catch (IOException e) {}  
              }   
          } 
}

2.Client客戶端

import java.io.*;
import java.net.* ;

	public class TestClient {
		public static void main(String args[]) {  
			try {  
				Socket s1 = new Socket("127.0.0.1", 8888);  //創建Socket,IP及端口號
				InputStream is = s1.getInputStream(); //輸入流
				DataInputStream dis = new DataInputStream(is);  
				System.out.println(dis.readUTF());   //打印傳輸的信息
				dis.close();   
				s1.close();  
				} catch (ConnectException connExc) {
					System.err.println("服務器連接失敗!"); 
					} catch (IOException e) {   }   
			} 
	}

首先運行TestServer,再運行TestClient ,就會在控制台打印出:Hello,I am Socket! bye bye!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM