Friday, October 12, 2012

Networking - Bài 2

Client server
  • Để xử lý nhiều  yêu cầu kết nối với các mục đích khác nhau và chúng đến gấn như đồng thời modern server operating system sử dụng khái niệm port
  • Port không phải là thiết bị vật lý, chúng đại diện cho một vùng nhớ cụ thể của máy tính
  • Server có thể lắng nghe trên nhiều port tại một address
  • Mọi máy tính với địa chỉ IP đều hỗ trợ một phạm vi hàng nghìn port cho phép xử lý nhiều kết nối cùng lúc
  • Port được chia ra thành 3 phạm vi:
    • Well-known ports: 0 -> 1023
    • Registered ports: 1024 -> 49151
    • Dynamic and/or private ports: 49152 -> 65535
Checking network status

  • Android cung cấp các tiện ích của host để xác định các hình thiết bị và trạng thái của các dịch vụ khác nhau bao gồm cả network.
  • Lớp ConnectivityManager xác định kết nối mạng có tồn tại hay không và để get các cảnh bảo về sự thay đổi trên mạng.
  • Đoạn code dưới đây là một phần của main Activity trong ứng dụng NetworkExplorer thể hiện cách sử dụng cơ bản của ConnectivityManager.
@Override
public void onStart() {
super.onStart();
ConnectivityManager cMgr = (ConnectivityManager)
this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cMgr.getActiveNetworkInfo();
this.status.setText(netInfo.toString());
}

    • Ví dụ trên cho bạn thấy bạn có thể lấy một handle cho ConnectivityManager thông qua phương thức getSystemService của ngữ cảnh bằng cách truyền vào hằng số CONNECTIVITY_SERVICE.
    • Khi bạn đã có được mannager bạn có thể lấy được thông của mạng thông qua đối tượng của lớp NetworkInfo
  • Phương thức isAvailable hoặc isConnected(trả về giá trị boolean) được sử dụng để kiểm tra kết nối mạng
  • Có thể truy vấn trực tiếp NetworkInfo.State sử dụng phương thức getState. State là một enum định nghĩa các trạng thái thô của kết nối. Các giá trị của nó CONNECTED, CONNECTING, DISCONNECTED, DISCONNECTING.

No comments:

Post a Comment