- Xử lý sự kiện với các đối tượng giao diện
2.2.5 Kết nối internet với J2ME A Khung kết nối chung GCF
A. Khung kết nối chung GCF
CLDC cung cấp cho chúng ta một khung tổng quát để thiết lập kết nối mạng, đó là GCF. Ý tưởng của nó là: định nghĩa một cách trừu tượng các hoạt động mạng và nhập
Connector để mở kết nối, chúng ta chỉ cần gọi một phương thức open cố định dạng như sau:
Connector.Open(“protocol:address; parameter”)
Cơ chế mà GCF dùng để mở nhiều loại giao tiếp chỉ bằng một phương thức chung duy nhất này đã chứng minh tính uyển chuyển của GCF. Cơ chế này hoạt động như sau:
1. Trong thời gian thực thi, mỗi khi có yêu cầu mở một giao thức, Connector sẽ tìm đến lớp tương ứng cài đặt giao thức ấy. Quá trình tìm kiếm này được thực hiện thông qua phương thức Class.forName(). Ví dụ như để yêu cầu mở kết nối HTTP trong J2ME, yêu cầu đó sẽ được viết như sau: Class.forName(“com.sun.midp.io.j2me.http.Protocol”);
2. Khi tìm thấy lớp tương ứng, Class.forName() sẽ trả về một đối tượng có cài đặt giao diện Connection (trong đó lớp Connector và giao diện Connection đã được định nghĩa sẵn trong CLDC). Sau khi kết nối thành công, mọi công việc giao tiếp, trao đổi dữ liệu sẽ đều được thực hiện với đối tượng cài đặt giao diện Connection này.
Ta cần nhớ rằng: cài đặt thật sự của các giao thức đều nằm ở mức profiles. Trong MIDP 1.0, HttpConnection hỗ trợ một tập con HTTP phiên bản 1.0. Do đó khi lớp này mở rộng ContentConnection, nó đã được cung cấp sẵn hơn 20 phương thức chuyên biệt để giao tiếp thông qua giao thức HTTP.
Ví dụ, để tạo một kết nối HTTP ta sẽ làm như sau: //Tạo chuỗi kết nối
String url = "http://www.corej2me.com";
// HttpConnection là một đối tượng thuộc MIDP // lớp cài đặt thực sự giao thức HTTP
HttpConnection http=null;
//Dùng đối tượng Connector để mở kết nối, phương thức open của đối //tượng này trả về một đối tượng Connection.
//Ép kiểu đối tượng Connection thành HttpConnection
HttpConnection http = (HttpConnection) Connector.open(url);