BÁO CÁO ĐỀ TÀI Môn học: Lập Trình Mạng.

24 881 3
BÁO CÁO ĐỀ TÀI Môn học: Lập Trình Mạng.

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trường Đại Học Giao Thông Vận Tải TP.HCMKhoa Công Nghệ Thông Tin.  BÁO CÁO ĐỀ TÀIMôn học: Lập Trình Mạng.GVHD: Thầy Đặng Tư Cách Thành viên nhóm:1.Võ Huỳnh Lê Vũ.2.Dương Ngọc Thiện3.Nguyễn Hữu Tình4.Lý Quang Thiện5.Nguyễn Văn ThơmTP.HCM ngày 15 tháng 12 năm 2010

Trường Đại Học Giao Thông Vận Tải TP.HCM Khoa Công Nghệ Thông Tin.    BÁO CÁO ĐỀ TÀI Môn học: Lập Trình Mạng. GVHD: Thầy Đặng Tư Cách Thành viên nhóm: 1. Võ Huỳnh Lê Vũ. 2. Dương Ngọc Thiện 3. Nguyễn Hữu Tình 4. Lý Quang Thiện 5. Nguyễn Văn Thơm TP.HCM ngày 15 tháng 12 năm 2010 1 MỤC LỤC MỤC LỤC 2 I. Giới thiệu: 3 II. Cơ sở lý thuyết 4 1. Giới thiệu về J2ME: 4 1.1. Tổng quan: 4 2.1javax.microedition.io.Connecton: 9 III. Hiện thực chương trình: 20 IV. Hướng dẫn cài đặt và sử dụng: 22 VI. Kiểm tra- đánh giá: 24 2 I. Giới thiệu: Chương trình nhằm đáp ứng nhu cầu học anh văn ngày càng cao của mọi người, cụ thể là dịch 1 từ, 1 đoạn văn bản trên 1 thiết bị rất phổ biến là điện thoại di động. Ngày nay, các công cụ dịch từ, văn bản có trên mạng rất nhiều. Trong đó, theo mọi người nhận xét thì Google Translate là công cụ miễn phí, dễ sử dụng, và tốt nhất. Vì thế, chương trình sẽ thông qua các API mà Google Translate đã cung cấp sẵn để dịch. Trên điện thoại di động thì JAVA rất phổ biến hầu như điện thoại nào cũng hỗ trợ, vì thế, chương trình sẽ sử dụng JAVA cụ thể là JAVA2ME. Chương trình có thể dịch thông qua kết nối Socket hoặc Http, thông qua 1 server khác hoặc kết nối trực tiếp đến Google Translate để dịch. 3 II. Cơ sở lý thuyết 1. Giới thiệu về J2ME: 1.1. Tổng quan: J2ME (Java 2 Micro Edition) là ngôn ngữ nền tảng để lập trình cho các thiết bị nhỏ gọn có sự giới hạn về dung lương bộ nhớ cũng như là kích thước màn hình. 1.2. Kiến trúc của J2ME: 1.2.1 Các thành phần chính: - Configuration: là định nghĩa một môi trường phần mềm cho một dòng các thiết bị có cùng các tiêu chuẩn về phần cứng. + Kiểu và số lượng bộ nhớ. + Kiểu và tốc độ bộ xử lý. + Kiểu mạng kết nối. Nghĩa là Configuration sẽ xác định JVM (Java Virtual Machine) được sử dụng. Trong J2ME, Configuration tương ứng là CLDC ( Connected Limited Device Configuration). CLDC được thiết kế nhằm vào các thiết bị cấp thấp, các thiết bị có từ 16 đến 512 kb bộ nhớ, dung lượng ROM và RAM của thiết bị dùng CLDC cũng rất hạn chế. - Profile: là tầng trên của Configuration, Profile mở rộng Configuration bằng cách thêm các class để hỗ trợ cho các thiết bị với các tính năng chuyên biệt. Profile được sử dụng trong J2ME là MIDP (Mobile Information Device Profile). Một số đặc tính của MIDP: + Dung lượng ROM nhỏ nhất phải đạt 256kb. + 128kb RAM. + Màn hình đạt độ phân giải ít nhất 96x54 pixel + Input bằng keypad, keyboard hoặc màn hình cảm ứng. + Có một kết nối mạng hai chiều (Two-way network connection). 4 Hạn chế của MIDP: + Không hỗ trợ phép tính với dấu phầy động: phép tính này đòi hỏi tài nguyên hệ thống vượt quá sự cho phép của các thiết bị dùng J2ME. + Hỗ trợ hạn chế thao tác bắt lỗi. + Không hỗ trợ các tính năng quản lý file và thư mục. Những tính năng chính của MIDP 1.0: + Các lớp và kiểu dữ liệu: các thư viện thông dụng vẫn được giữ lại để hỗ trợ người lập trình. + Hỗ trợ Form và giao diện người dùng. + Hỗ trợ Time và Alert. + Tính năng RMS cho phép lưu trữ dữ liệu. + Hỗ trợ đối tượng Display. MIDP 2.0 ra đời cũng đã hỗ trợ nhiều tính năng mới: + Nâng cấp khả năng bảo mật (hỗ trợ https). + Thêm cácAPI hỗ trợ Multimedia. + Hỗ trợ game nhiều hơn. + Hỗ trợ kiểu ảnh RGB. - Java Virtual Machine: J2ME dùng một máy ảo Java riêng biệt với tên gọi (KVM). KVM là một sự rút gọn của JVM để thích hợp với các thiết bị có sự hạn chế về cấu hình. Chính vì điều đó, những thiết bị nhỏ gọn chỉ hỗ trợ J2ME thì không thế chạy các ứng dụng đươc viết trên môi trường Java thuần túy được. 1.2.2 Môi trường phát triển: Có nhiều bộ công cụ hỗ trợ lập trình J2ME + Java(TM) ME Platform SDK 3.0 + Java NetBean + J2ME Wireless Toolkit…. 1.3. Các thành phần giao diện chính: J2ME hỗ trợ các thành phần giao diện như : 5 +Form. + Textfield. + Textbox. +StringItem. + Gauge. 6 + Listbox. + Choicegroup. + Datefield. 7 + CustomItem. + ImageItem. + Ticker: 8 2. Các gói đã sử dụng: 2.1javax.microedition.io.Connecton: Mạng cho phép client di động gởi và nhận dữ liệu đến server. Nó cho phép thiết bị di động sử dụng các ứng dụng như tìm kiếm cơ sở dữ liệu, trò chơi trực tuyến… Trong J2ME, mạng được chia làm hai phần. Phần đầu tiên là khung được cung cấp bởi CLDC và phần hai là các giao thức thật sự được định nghĩa trong các hiện trạng. Khung mạng CLDC tổng quát (Generic CLDC Networking Framework) CLDC cung cấp một khung tổng quát để thiết lập kết nối mạng. Ý tưởng là nó là đưa ra một khung mà các hiện trạng khác nhau sẽ sử dụng. Khung CLDC không định nghĩa giao thức thật sự. Các giao thức sẽ được định nghĩa trong các hiện trạng. Hình 1 biểu diễn cách mà khung CLDC làm việc: Khung mạng CLDC tổng quát Kết nối mạng được xây dựng bằng phương thức open() của lớp Connector trong CLDC. Phương thức open() nhận một tham số đầu vào là chuỗi. Chuỗi này dùng để xác định giao thức. Định dạng của chuỗi là: protocol:address;parameters CLDC chỉ xác định tham số là một chuỗi nhưng nó không định nghĩa bất kỳ giao thức thật sự 9 nào. Các hiện trạng có thể định nghĩa các giao thức kết nối như HTTP, socket, cổng truyền thông, datagram,… Phương thức open() trả về một đối tượng Connector. Đối tượng này sau đó có thể đóng vai trò là một giao thức xác định được định nghĩa trong hiện trạng. Connector.open(“protocol : address; parameters”); Một số giao thức ví dụ (nhưng không được hỗ trợ bởi CLDC hay MIDP): Socket: Connector.open(“socket://199.3.122.21:1511”); Comm port: Connector.open(“comm:0;baudrate=9600”); Datagram: Connector.open(“Datagram://19.3.12.21:1511”); Files: Connector.open(“file:/filename.txt”); MIDP hỗ trợ giao thức HTTP: HTTP: Connector.open(“http://www.sonyericsson.com”); Trả về một đối tượng Connection Ví dụ trên minh họa kết nối socket, cổng truyền thông, datagram, file và HTTP. Tất cả các kết nối mạng đều có cùng định dạng, không quan tâm đến giao thức thật sự. Nó chỉ khác nhau ở chuỗi chuyển cho phương thức open(). Phương thức open() sẽ trả về một đối tượng Connection đóng vai trò là lớp giao thức (ví dụ. HttpConnection) để có thể sử dụng các phương thức cho giao thức đó. J2ME chỉ định nghĩa một kết nối là kết nối HTTP trong MIDP. Các lớp giao diện kết nối: Dẫn xuất từ lớp Connection là nhiều lớp giao diện con cung cấp khung kết nối mạng. Các giao diện khác nhau để hỗ trợ các loại thiết bị di động khác nhau. 10 [...]... vì dữ liệu sẽ không bị mất mát, sai lệch trong quá trình truyền, server gửi cho client thông điệp gì thì phía client sẽ nhận được thông điệp nguyên như vậy Giao thức TCP sẽ cung cấp cho chúng ta một cách thức truyền tin cậy Để có thể nói chuyện được trên TCP thì chương trình client và chương trình server phải thiếp lập một đường truyền, và mỗi chương trình sẽ phải kết nối lại với socket là điểm cuối... kết nối HTTP có thể ở một trong ba trạng thái khác nhau: Thiết lập (Setup), Kết nối (Connectd), hay Đóng (Close) Trong trạng thái Thiết lập, kết nối chưa được tạo Phương thức setRequestMethod() và setRequestProperty() chỉ có thể được dùng trong trạng thái thiết lập Chúng được dùng để thiết lập phương thức yêu cầu (GET, POST, HEAD) và thiết lập thuộc tính HTTP (ví dụ User-Agent) Khi sử dụng một phương... } output.close(); 19 III Hiện thực chương trình: Tên đề tài: Xây dựng ứng dụng mô hình Client/Server thực hiên công việc sau: Client (Mobile) gửi câu tiếng anh (text) lên server Server (Trên PC) trả về câu tiếng việt (Dùng thư viện Google) Quá trình làm việc: nhóm sử dụng J2ME để viết phần mềm dịch chạy trên nền điện thoại di động, Về mặc chức năng, chương trình có 2 đối tượng chính: + phía client:... chạy ứng dụng - Trường hợp chạy trên giả lập: Nếu bạn cài Java wireless Toolkit thì mặc định chương trình đã tạo cho bạn một điện thoại giả lập Sau khi bạn biên dịch xong thì bạn sẽ thấy 2 file: một file có phần mở rộng *.jar và một file có phàn mở rộng *.jad Bạn chỉ cần doubleclick vào file *.jad thì tự động chương trình sẽ đươc thực thi trên điện thoại giả lập của Java wireless toolkit 2 Hướng dẩn... dụng: 2.1 Dịch văn bản Sau khi chương trình chạy thì bạn sẽ thấy giao diện như hình dưới Muốn dịch đoạn test nào bạn chỉ cần nhập đoạn test đó vào rồi nhấn nút Translate Có thể chương trình sẽ hỏi bạn về một số vấn đề kết nối mạng, bạn hãy chọn yes Ngay sau đó kết quả dịch sẽ hiển thị ra ngay phía dưới 22 2.2.Hướng dẫn cấu hình chương trình: Để cấu hình chương trình, các bạn vào menu, sau đó chọn Config,... Chúng ta cứ mường tượng socket ở đây là một cái cửa mọi người muốn đi ra hay đi vào đều phải thông qua cái cửa này Socket là gì? Một socket là một điểm cuối của thông tin hai chiều liên kết giữa hai chương trình đang chạy trên mạng Những lớp socket được dùng để đại diện cho kết nối giữa một chương trình client và một chương trình server Trong Java gói Java.net cung cấp hai lớp Socket và ServerSocket để... cho client (tại trang web http://tiuliuliuliu.vnn.ms sẽ được viết code php để xử lý) Vấn đề đa ngôn ngữ: chương trình hỗ trợ cho 4 ngôn ngữ và người dùng có thể lựa chọn ngôn ngữ thích hợp bằng cách sử dụng RMS để lưu cấu hình, nên tất cả các cấu hình mà người dùng đã lựa chọn sẽ được lưu lại để đảm bảo chương trình hoạt động theo đúng ý muốn người dùng mà không cần phải cấu hình nhiều lần Yêu cầu:... getViaHttpConnection(String url) throws IOException { HttpConnection c = null; InputStream is = null; OutputStream os; try { c = (HttpConnection)Connector.open(url); // Mở kết nối // Thiết lập phương thức POST // trong khi vẫn ở trạng thái Thiết lập 15 c.setRequestMethod(HttpConnection.POST); // Mở luồng output stream và chuyển sang trạng thái Kết nối os = c.openOutputStream(); // Chuyển đổi dữ liệu thành luồng byte... Connection Phương thức open() trả về một đối tượng Connection đóng vai trò là một lớp HttpConnection Kết nối bây giờ ở trong trạng thái thiết lập và phương thức yêu cầu được đặt là POST bằng phương thức setRequestMethod() Tất cả các thuộc tính khác phải được thiết lập trong trạng thái này Phương thức openOutputStream() sẽ làm cho kết nối chuyển sang trạng thái Kết nối Phương thức write() và flush() sẽ...2.2 javax.microedition.io.SocketConnection Khái quát về Socket :Như chúng ta đã biết kết nối URLs và URL cung cấp cho chúng ta một cơ cấu để truy xuất vào các tài nguyên trên Internet ở một mức tương đối cao, nhưng đôi khi chương trình của chúng ta lại yêu cầu một giao tiếp ở tầng mạng mức thấp Ví dụ khi chúng ta viết một ứng dụng client- server.Trong một ứng dụng client-server thì phía server

Ngày đăng: 16/10/2014, 12:28

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • I. Giới thiệu:

  • II. Cơ sở lý thuyết

    • 1. Giới thiệu về J2ME:

      • 1.1. Tổng quan:

      • 2.1 javax.microedition.io.Connecton:

        • 2.5.1 java.io.InputStream

        • 2.5.2 java.io.OutputStream

        • III. Hiện thực chương trình:

        • IV. Hướng dẫn cài đặt và sử dụng:

        • VI. Kiểm tra- đánh giá:

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan