Đề tài Xây dựng dịch vụ Chat trên mạng

MỤC LỤC

 

Trang

 

CHƯƠNG I: TỔNG QUAN VỀ INTERNET

I- Kiến trúc mạng máy tính. 7

1. Kiến trúc mạng: 7

2. Mô hình mạng ISO 7

II- Tổng quan về Internet. 9

1. Internet bắt nguồn từ đâu? 10

2. Giao thức là gì? 10

3. Giao thức TCP/IP. 11

Bộ protocol TCP/IP. 12

Mô hình kết nối theo giao thức TCP/IP 13

Phân loại địa chỉ IP 14 4. Các dịch vụ kết nối đến Internet. 15

Dịch vụ trực tuyến(online service). 15

Nhà cung cấp dịch vụ Internet(ISP). 15

Truy nhập trực tuyến(direct access) 15

III- Tổng quan một số dịch vụ thông dụng trên mạng. 15

1. Dịch vụ Chat. 15

2. Đăng nhập từ xa Telnet 15

3. Archie (tìm kiếm tập tin) 16

4. Tìm kiếm thông tin theo chỉ số WAIS. 16

5. Gopher. 16

6. Dịch vụ Thư Điện Tử (E-mail). 16

7. Dịch vụ World Wide Web hay còn gọi là Web. 18

8. Dịch vụ tên miền (Domain Name System - DNS) 20

9. Dịch vụ nhóm tin (Use Net News Groups) 21

10. Dịch vụ FTP (File Transfer Protocol) 22

11. Internet Phone. 22

Tóm tắt chương I. 23

 

CHƯƠNG II: TÌM HIỂU VỀ INTERNET RELAY CHAT

Giới thiệu tổng quan về IRC 25

I. Một số khái niệm cơ bản 26

1.Servers 26

2.Clients 26

3.Channels 27

II. Những quy định trong IRC 27

1.Dạng chung của thông điệp 27

2.Message 28

3.Giá trị số trả về (numeric replies) 29

III. Chi tiết từng message (message detail) 29

1.Nhóm message đăng ký kết nối. 30

Message do server sử dụng 32

1.1.Server Message 32

1.2.Server Quit Message 32

Message do client sử dụng 32

1.3.Operator message 32

1.4 Quit message 32

Nhóm message dùng chung 32

1.5.Pass message 32

1.6.Nick Message 33

1.7 User Message. 33

2.Nhóm message dùng cho việc điều khiển Channel. 33

2 .1 Join message 33 2.2 Part message 33

2.3.Mode message 33

2.3.1.Channel mode 33

2.3.2.User mode 33

2.4.Topic message 34

2.5.Names message 34

2.6 List message 34

2.7.Invite message 34

2.8. Kick message 34

3.Nhóm message truy vấn đến server (server query and command) 34 3.1.Version message 34

3.2 Stats message 34

3.3.Link message 34

3.4.Time message 34

3.5.Connect message 34

3.6.Trace message 34

3.7.Admin message 35

3.8 Info message 35

4.Nhóm message gởi text (sending message) 35

4.1 Private message 35

4.2.Notice message 35

5.Nhóm message do client truy vấn đến server (user –based query) 35

5.1. Who Query 35

5.2. Who is Query 35

5.3 Who was message 35

6.Nhóm message khác 35

6.1.Kill message 35

6.2.Ping message. 36

6.3.Pong message 36

6.4. Error message 36

7.Nhóm message tuỳ chọn (option message) 36

7.1 Away message. 36

7.2.Rehast message 36

7.3.Restart message 36

7.4.Summon message 36

7.5. Users message 36

7.6.Operwall message 36

7.7. Userhost message 36

7.8. Ison message 36

 

CHƯƠNG III: MỘT SỐ DỊCH VỤ CHAT TRÊN MẠNG

 

I- Chat-Tán gẫu trên mạng 39

II- Dịch vụ Chat IRC(Internet Relay Chat) 39

1. Giới thiệu về hoạt động của IRC 39

2. Cách sử dụng. 39

IRC server 40

Port 40

3. Một số công cụ khi thực hiện Chat Mirc 40

Chat chốn đông người 40

Tìm hiểu về người bạn cùng chat 41

Chat riêng tư 41

Kết nối trực tiếp 41

III- Dịch vụ Yahoo!Messenger. 41

1. Giới thiệu. 41

2. Chat trong Yahoo!Messenger. 43

IV- Dịch vụ AOL INSTANT MESSENGER(AIM) 44

1. Giới thiệu về AIM. 44

2. Cách sử dụng. 45

3. Một số tính năng của AOL Instant Messenger 47

Tìm hiểu về tính năng Instant Message. 47

Tính năng Buddy List. 47

Thông báo Away và Idle 47

Trao đổi tập tin 47

Đặc tính Image 48

Chat trong AOL Instant Messenger 48

V- MobiChat- Chat qua điện thoại di động 48

VI- Một số dịch vụ chat thông dụng khác 49

Tóm tắt chương III. 50

 

CHƯƠNG IV- GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH JAVA

 

I- Giới thiệu ngôn ngữ Java. 52

II- Ưu điểm và nhược điểm của Java. 53

1. Ưu điểm của Java. 53

2. Nhược điểm của Java 55

3. Hoạt động của Java 55

III- Cơ chế truyền nhận trong Java. 56

1. Các kiến thức cơ bản về Networking. 56

TCP. 57

UDP 57

Port. 59 2. Networking: 59 2.1. Giao tiếp giữa phần hiện thực client và Browser ở máy local: 60 a. URLs 60

2.2. Sockets 62

b. Sử dụng Socket ở Client 62

c. Sử dụng Socket ở Server 64 d. Lớp Socket. 65

e. Java Security 67 2.3. Threads, Synchronization và Exceptions. 67

a. Multithread 67

b. Synchronization (xử lý crictical section) 69

c. Exceptions 70 3. Cơ Sở Dữ Liệu 70 3.1. JDBC 70

a. JDBC là gì ? 70

b. Cấu trúc JDBC 71

3.2. ODBC và JDBC 72 3.3. Sử dụng JDBC driver 72

3.4. Sử dụng JDBC để truy xuất Cơ sở dữ liệu. 73

a. Kết Nối Tới Cơ sở dữ liệu: 73

b.Truy xuất Cơ sở dữ liệu trong java 73

c. Ðối Tượng ResultSet 74

d. Ðối Tượng ResultSetMetaData: 75

e. Ðối Tượng DatabaseMetaData: 75

f. Lấy Thông Tin Trên Table 75

Tóm tắt chương IV. 77

 

Tài liệu tham khảo. 82

 

 

doc112 trang | Chia sẻ: netpro | Lượt xem: 3220 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng dịch vụ Chat trên mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
r Chương trình này cho phép người có đăng ký Netscape và AOL Instant Messenger mới được phép chat trong các phòng Buddy chat. Ở đây bạn có thể chọn screen name của người nào đó có trong Buddy chat của mình để thực hiện chat, hoặc bạn có thể mời thêm bạn cùng tham gia chat với mình. ¨ Hộp thoại chat được mở ra và bạn gởi thông điệp chat này đến người bạn muốn chat. ¨ Tạo siêu liên kết trong thông điệp chat bằng cách nhấn nút Link, trên thanh công cụ mở cửa sổ Edit Hyperlink. ¨ Chọn và ghi địa chỉ URL của site mà bạn muốn liên kết đến. ¨ Lưu thông điệp lại nếu bạn cần lưu. ¨ Khi đăng xuất, chương trình sẽ đưa bạn ra khỏi chương trình, đóng chương trình lại, giữ biểu tượng AIM trên hệ thống, giúp bạn đăng nhập dịch vụ một cách nhanh chóng. V-MobiChat- Chat qua điện thoại di động - Ngày nay ngoài hình thức chat trên Internet còn phổ biến thêm một loại chat khác cũng không kém phần hấp dẫn đó là chat qua điện thoại di động. - Dịch vụ Mobichat cho phép thuê bao MobiFone/MobiCard có thể gởi tin nhắn thông qua hệ thống MobiChat của MobiFone. - Để thực hiện được điều này, bạn phải làm thủ tục đăng ký đơn giản tại các trung tâm dịch vụ khách hàng của VMS-MobiFone, hoặc bạn có thể gởi tin nhắn đến MobiChat để đăng ký. - Giá cả hợp lý: không có cước phí, nhưng bù lại là 500đ/tin nhắn. - Tiện lợi: Bạn không cần phải nối với Internet, không cần phải ngồi hàng giờ trước máy tính, vấn đề chỉ là một chiếc điện thoại di động MobiFone/MobiCard có chức năng nhắn tin ngắn. - Năng động: MobiChat hoạt động 24h/ngày, bạn có thể thực hiện chat ở bất cứ đâu, vào bất cứ lúc nào. - Trước khi sử dụng bạn phải cài đặt dịch vụ nhắn tin ngắn của SMS vào điện thoại di động VI- Một số dịch vụ chat thông dụng khác: Ngoài những dịch vụ trên, còn có những dịch vụ chat rất thông dụng, và mỗi loại chat có một tính năng riêng nhưng đều có mục đích phục vụ giúp người sử dụng dễ sử dụng, tiện lợi, tinh tế….Các bạn có thể tham khảo địa chỉ của những trang web sau: Http:// www.Infoseek.com Http:// www.alamak.com Http:// www.vietchat.com Http:// www.vietfun.com TÓM TẮT CHƯƠNG III a&b Chat là tài nguyên được mọi người sử dụng trên Internet ưa chuộng nhất. Đây là tài nguyên rất lý thú, nó cho phép bạn thiết lập các cuộc đối thoại thông qua máy vi tính với người dùng khác trên Internet, hoặc trong một mạng Lan…. Ở chương này em tìm hiểu một số dịch vụ Chat thông dụng hiện nay, cùng một số công cụ khác khi tham gia vào dịch vụ trên mạng Internet: - Hiện nay có hai loại Chat thông dụng là: Text Chat và Voice Chat. - Dịch vụ Chat mIRC (Internet Relay Chat): loại này cho phép ta chat thông qua nhiều kênh(Channel). nếu bạn tham gia kênh cụ thể bạn sẽ thấy Nickname, nội dung của những người đang tham gia trên kênh đó đang gõ từ bàn phím của họ và ngược lại. - Dịch vụ Yahoo!Messenger:Yahoo! Messenger cho phép bạn trao đổi nhanh chóng thông điệp tức thời với bạn bè trên Net, sử dụng dịch vụ Chat và truyền tập tin, nhận bảng thị giá chứng khoán, tin tức thời tiết, thể thao,….bước đầu tiên cho phép bạn download chương trình miễn phí. - Dịch vụ AOL INSTANT MESSENGER(AIM): AIM hiện nay còn gọi là Netscape Instant Messenger (NIM) đang là dịch vụ trao đổi thông điệp tức thời và chat phổ biến nhất, bên cạnh Yahoo! Messenger. Đây là dịch vụ cho phép bạn giao tiếp, liên lạc với bạn bè theo cách giản tiện nhất. Những tính năng AIM gồm có: + Thiết lập danh sách bạn bè, gia đình, đồng nghiệp. + Gởi thông điệp tức thời. + Chat với bạn bè hoặc thành viên gia đình trong phòng chat riêng. + Gởi tập tin(văn bản, hình ảnh, âm thanh,…). + Chi phối số người được phép giao tiếp với bạn thông qua tính năng bảo vệ sự riêng tư. Bạn có thể cho phép bất cứ ai gởi thông điệp đến bạn, hoặc nhận thông điệp từ người cụ thể. + Tìm kiếm bạn bè theo địa chỉ E-mail,… - Một số dịch vụ chat thông dụng khác: Ngoài những dịch vụ trên, còn có những dịch vụ chat rất thông dụng, và mỗi loại chat có một tính năng riêng nhưng đều có mục đích phục vụ giúp người sử dụng dễ sử dụng, tiện lợi, tinh tế….Các bạn có thể tham khảo thêm địa chỉ của những trang web sau: Http:// www.alamak.com Http:// www.vietchat.com Http:// www.vietfun.com Http:// www.Infoseek.com - Xây dựng dịch vụ Chat của chương trình: Company Phoenix_Chat dùng cho một mạng lưới của một công ty hay một tổ chức nào đó. Ở đây chỉ dành cho những người trực thuộc công ty hay tổ chức đó đang sử dụng chương trình. Chương 4 GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH JAVA. I- Giới thiệu ngôn ngữ Java. Java ngôn ngữ lập trình của Sun Microsystems, có một sức mạnh đầy ấn tượng và là chủ đề đang được tranh luận nhiều nhất hiện nay, Logo của Java- một tách cafe bốc khói, cùng các Applet Java đang tràn ngập khắp World Wide Web, và được các ngành công nghiệp chấp nhận với một tốc độ chưa từng có. Vậy thực ra Java là gì? Uy lực của chúng ra sao? Đó là tất cả những gì mình muốn nói cùng các bạn, trong quá trình làm thực tập tôi đã lượm lặt được. Java được phát triển vào thập kỷ 1990, do nhà thiết kế là James Gosling, nhà lập trình triển khai phiên bản chương trình dịch là ông Arthur van Hoff.. Thoạt đầu người ta đặt tên cho ngôn ngữ này là "Oak", Java xuất phát từ một dự án nghiên cứu chứ không phải là một sản phẩm nhằm mục đích sinh lời, công ty Sun đã đồng ý đưa Java Development Kit (bộ công cụ phát triển Java, bao gồm chương trình dịch và hệ thống đáp ứng chạy chương trình) lên Internet miễn phí vào khoảng giữa năm 1995, chỉ trong vòng hai năm sau chúng đã gặt hái được nhiều thành tích lớn.   Hệ thống Java bao gồm một số cấu phần như sau: Ngôn ngữ lập trình Java, Java Virtual Machine (Máy ảo Java, bộ thông dịch) Các thư viện phần mềm đi kèm hệ thống. Chương trình duyệt web HotJava hoặc chương trình duyệt web khác thích ứng với Java. Với Java, bạn sẽ có dịp tiếp cận với một trong những sự phát triển kỳ thú nhất của ngành công nghiệp phần mềm.  Java phát triển nhanh chóng là nhờ Web. Nhưng trên thực tế, sức mạnh vốn có của Java không phải là ngôn ngữ lập trình cho Web. Những kỹ sư phần mềm tài năng của hãng Sun đã mang Java vào Web, đã giải quyết một cách tế nhị nhiều vấn đề quan trọng - phương pháp phát triển phần mềm mạng trên hầu hết các máy tính và hệ điều hành 32 bit. Trình biên dịch và những công cụ khác của Java Mã byte đã được biên dịch Hệ điều hành (Solaris, Linux, Windows95/NT, MacOS, OS/2) Phần cứng máy tính (Sparc, Pentium, X86, Power PS,....) Hệ thống thực thi Java Máy ảo Java Java API Bức màn bí mật về Java Hệ nền chủ Java Ngôn ngữ lập trình java Những chương trình nguồn của java II- Ưu điểm, nhược điểm và hoạt động của Java. 1- Ưu điểm của java là: được Sun mô tả như là một ngôn ngữ lập trình đơn giản, hướng đối tượng, kiểu - mạng, có thể biên dịch, mạnh, an toàn, độc lập với cấu trúc, dễ di chuyển, hiệu suất cao, đa luồng, và có tính động. Những điều đó không dễ giải thích. Vậy thì, cụ thể Java làm được gì? Về cơ bản, nó giúp các nhà phát triển phần mềm thực hiện được những việc sau: ¨Thứ nhất: họ có thể xây dựng nên các applet Java, đó là những trình ứng dụng mini được phân phối qua Internet và chạy trong một trình duyệt Web hiểu Java. Các applet Java tăng cường cho trang Web khả năng tương tác phong phú hơn và tính đa phương tiện tốt hơn so với khi dùng HTML bình thường. Applet hoạt động giống như cung cách bạn đặt một trang web với các siêu văn bản trên một server và một máy khách (client) có thể tải trang đó xuống theo yêu cầu để xem các văn bản đã sắp đặt theo khuôn dạng. Tương tự, bạn viết và biên dịch một chương trình applet Java và đặt một tham chiếu URL hoặc HTML tới nó trong trang web. Khi một client duyệt qua trang web này, mã nhị phân của applet Java được tải xuống client đó cùng các tệp văn bản và đồ hoạ. chương trình duyệt chứa một JVM và nó sẽ thực hiện applet trên máy tính của client. ¨Thứ hai: các nhà phát triển phần mềm có thể xây dựng các trình ứng dụng hoàn chỉnh bằng Java, như bộ xử lý văn bản, bảng tính, hoặc bộ chương trình văn phòng tổng hợp (như Corel đang làm chẳng hạn). Ưu điểm của cách làm này là các trình ứng dụng chỉ cần viết một lần mà chạy được trên hầu hết mọi loại máy tính. ¨Thứ ba: Java đáp ứng không những tính dễ chuyển mang mà còn cả cách xử lý đồng nhất của chương trình trên các hệ thống khác nhau. Đầu tiên mã nguồn Java được biên dịch để sinh ra mã đối tượng gọi là bytecode, bytecode không phải là mã nhị phân của bất kỳ máy tính đang tồn tại thực tế nào mà đó là một loại mã máy kiến tạo, Bạn sẽ thực hiện một chương trình Java bằng cách chạy một chương trình khác gọi là Java Virtual Machine hay là JVM, JVM đọc chương trình bằng bytecode và thông dịch hoặc biên dịch nó ra theo hệ lệnh thực tế, JVM biến tất cả mọi nền phần cứng và phần mềm trở nên giống nhau dưới con mắt của chương trình Java. Chạy bytecode trên một JVM là lý do vì sao các phần mềm Java là "viết một lần, chạy khắp nơi" ¨Thứ tư: Việc quản lý bộ nhớ: So với ngôn ngữ C và C++, các chương trình Java được quản lý về bộ nhớ ở mức hệ thống và người lập trình không bao giờ phải lo lắng về chuyện đó. Thư viện thời gian chạy của Java sẽ giám sát các cấu trúc dữ liệu. Khi không còn một tham chiếu nào tới một cấu trúc dữ liệu thì nó không thể là đang được sử dụng vì chương trình không có cách gì để đọc hoặc ghi nó. Lúc đó nó sẽ là đối tượng của việc dọn dẹp bộ nhớ.  Java hướng tới việc dọn dẹp bộ nhớ tự động. Việc dọn dẹp bộ nhớ tự động ảnh hưởng tới tính năng vì nó liên quan đến các quá trình khác chạy trong nền sau để giám sát việc sử dụng bộ nhớ. Tuy nhiên thực tế đã chỉ ra rằng, ở đây cũng có một sự cân nhắc đáng giá. Một hệ thống nhỏ thực hiện dọn dẹp bộ nhớ tự động đã dẫn tới sự cải thiện rất lớn thông qua việc gỡ bỏ một loạt các lỗi của các chương trình Java. Có thể so sánh, các chương trình C++ chịu trách nhiệm quản lý các đống (heap) bộ nhớ của riêng chúng do vậy chúng phải có mã dài hơn, mất nhiều thời gian gỡ rối hơn và các chương trình lớn thường dẫn tới các lỗi rất khó phát hiện và xử lý về việc dọn dẹp bộ nhớ. - Java là một môi trường độc lập, đó là một lợi thế quan trọng cho phép Java hơn hẳn những ngôn ngữ khác, đặc biệt là cho những hệ thống cần làm việc trên nhiều môi trường khác nhau, Java là một môi trường độc lập ở cả trên nền hệ thống lẫn dưới mức thấp như hệ xử lý nhị phân. Nó có khả năng chuyển từ hệ thống máy tính này sang hệ thống máy tính khác không phụ thuộc vào cấu trúc của máy hay hệ điều hành hoạt động trên máy. Compiler (Pentium) Compiler (PowerPC) Compiler (SPARC) Binary File (Pentium) Binary File (PowerPC) Binary File (SPARC) 2- Nhược điểm của Java là: Java có tốc độ thực thi chương trình phải thông qua JVM nên tốc độ rất chậm so với các ngôn ngữ khác. Nhưng Java vẫn nổi trội hơn tất cả những ngôn ngữ khác. Xem sơ đồ bên dưới. Java Ứng dụng đa hệ nền Ứng dụng bảo mật Ứng dụng Web Ứng dụng dựa vào GUI Ứng dụng mạng phân tán Ứng dụng hướng đối tượng Ứng dụng đa luồng Ứng dụng chuyên luồng Java vẫn trội hơn tất cả 3- Hoạt động của một ứng dụng viết bằng Java. - Chương trình xây dựng bằng Java được chia làm hai loại: Java Applet và Java Application. ¨ Hoạt động của Java Applet: Java Applet là các đối tượng được thực hiện trên các trình duyệt Web, Java Applet cũng tạo ra hiệu ứng như là một ứng dụng thông thường. Tuy nhiên các thông tin cho phép Java thực hiện lại đưa từ trang Web. Khi trình duyệt Web truy cập đến trang thông tin này, Java Applet sẽ được tải về trình duyệt web và được thực hiện thông qua cơ cấu gọi là JVM. ¨ Hoạt động của Java Application: Là những ứng dụng độc lập, tương tự như những chương trình có đuôi .EXE hoặc .COM thông thường, việc thực hiện này dễ hơn việc thực hiện của Java Applet vì chúng không phải thông qua trình duyệt Web. - Khi ứng dụng Java thực hiện(sau khi dịch Java có phần đuôi mở rộng là .class), JVM tiến hành phân mã trong *.class đó thành bộ lệnh của JVM rồi thực hiện giống như máy PC thao tác với các ứng dụng thông thường. Do đó các *.class sau khi dịch, có thể thực hiện trên bất kỳ hệ điều hành nào thông qua máy tính ảo JVM, JVM đã được xây dựng trên hầu hết các hệ điều hành và hệ xử lý hiện có, điều này có nghĩa là các ứng dụng viết bằng Java có đầy đủ điều kiện để phát triển. - Giống như hầu hết những ngôn ngữ lập trình hướng đối tượng khác, Java bao gồm: một môi trường, một ngôn ngữ, một giao diện ứng dụng Java và nhiều lớp thư viện. Những lớp riêng này có đặc tính riêng là tái sử dụng lại, đây cũng là điểm mạnh mà Java khác với ngôn ngữ khác. Ngoài những tính năng trên Java còn có khả năng xử lý đa luồng. Ngôn ngữ này thực sự cơ động nên nó rất thích hợp cho các ứng dụng trên mạng. Ngoài ra nó còn có các đặc tính cần thiết như: hỗ trợ chuỗi, đồ họa, kiểm soát lỗi, hỗ trợ đa luồng, đa phương tiện, làm việc theo mô hình client/server, linh động và hiệu quả,…Các tính năng trên thực sự là những gì mà các doanh nghiệp và tổ chức hiện nay đang cần, để đáp ứng chính xác các yêu cầu xử lý thông tin của họ Mô hình hoạt động của ứng dụng viết bằng Java: Maõ CT (*.Java) Maùy aûo Java(JVM) Maõ Bytecode Java (*.class) Java thoâng dòch (Pentium) Java thoâng dòch (Power PC) Java thoâng dòch (SPARC) Java biên dịch(Javax) Hình 1.1 - Các trình duyệt Web(Browser) hỗ trợ cho công việc của Java để thông dịch như: ¨ Internet Explorer(IE) của hãng Microsoft. ¨ Netscape Navigator của hãng AOL. ¨ HotJava Browser của hãng Sun. ¨ Ngoài ra còn có một số công cụ hỗ trợ Java thông qua môi trường làm việc là: · Java Workshop của hãng Sun. · Jbuilder của nhóm Inprise-Borland. ¨ Môi trường phát triển Java gồm hai phần: Java Compiler (chương trình biên dịch Java – Javax: Lớp này sẽ dịch chương trình thành lớp .class) và Java Interpreter(Chương trình thông dịch Java-java, javax, trình duyệt appletviewer, jview, trình tài liệu javadoc, trình tạo hồ sơ jar….dùng để đưa lên trang Applet). - Java mang cuộc sống đến cho WWW khi mà Web đã cho tiền thân của nó là Oak một viễn cảnh cuộc sống tốt đẹp hơn. Java đã được thấm sâu vào trong sự hiểu biết của nền công nghiệp này, còn nhanh hơn cả DOS hoặc Windows trong thời hoàng kim của chúng trước đây. Nhưng sự thành công lâu dài của Java không có gì đảm bảo - giống như một thần đồng nhỏ tuổi, phải trưởng thành nhanh chóng trong khi không được phép đốt cháy giai đoạn. Nếu vượt qua được, nó sẽ chứng minh rằng mạng là máy tính. Các bạn quan tâm có thể tìm hiểu thêm về Java thông qua website III- Cơ chế truyền nhận trong Java. 1. Các kiến thức cơ bản về Networking. Các máy tính chạy trên mạng Internet truyền thông với nhau dùng các Protocol TCP, UDP. Mô hình mạng 4 lớp được mô tả bằng hình vẽ dưới đây : Application (HTTP,ftp,telnet) Transport (TCP/IP,UDP) Network (IP,.) Link (device driver) Khi bạn viết các chương trình Java có truyền thông qua mạng, điều này có nghĩa là bạn đang lập trình ở lớp application. Nhìn chung, bạn không cần quan tâm tới các protocol TCP và UDP---Thay vì vậy, bạn có thể dùng các lớp trong package java.net. Các lớp này cung cấp việc truyền thông qua mạng độc lập hệ thống. Tuy nhiên, bạn cần hiểu rõ sự khác biệt giữa TCP và UDP để xác định rõ những lớp nào trong thư viện Java mà bạn sẽ sử dụng. Khi hai chương trình muốn truyền dữ liệu cho nhau một cách đáng tin cậy, chúng thiết lập một connection và gửi data qua lại thông qua connection đó. TCP đảm bảo rằng data được gửi từ một đầu connection tới đầu kia không mất mát và đúng thứ tự (nếu không, một lỗi sẽ được thông báo). Ðịnh nghĩa: TCP là một protocol dựa trên connection, cung cấp các data flow tin cậy giữa 2 máy tính. Những ứng dụng yêu cầu một kênh truyền point-to-point, đáng tin cậy đều dùng TCP. Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (ftp), và Telnet (telnet) là những ứng dụng đòi hỏi một kênh truyền đáng tin cậy. Thứ tự gửi và nhận phải đảm bảo là điều kiện buộc phải có đối với những ứng dụng này--khi dùng HTTP để đọc từ một URL, dữ liệu cần phải nhận được theo đúng thứ tự mà nó được gửi đi, nếu không mọi thứ sẽ đảo lộn cả lên. Tuy nhiên, cũng có những ứng dụng không đòi hỏi độ tin cậy quá cao. Ðiều này lại có lợi về hiệu suất. Một ví dụ của loại kênh truyền này là lệnh ping. Mục đích của lệnh ping là kiểm tra việc truyền nhận data giữa hai chương trình qua mạng. Thực ra, lệnh ping cần biết các package bị rơi rớt hay sai thứ tự để xác định chất lượng một connection. Do đó một kênh truyền đáng tin cậy sẽ không thích hợp với loại dịch vụ này. UDP protocol cung cấp việc truyền thông không đảm bảo giữa hai ứng dụng trên mạng. UDP không dựa trên connection như TCP. UDP gửi những package độc lập với nhau, gọi là datagrams, từ ứng dụng này tới ứng dụng kia. Việc gửi những datagram giống như việc gửi thư thông qua bưu điện. Thứ tự phân phát không quan trọng và không đảm bảo, và các message độc lập với nhau. Ðịnh nghĩa: UDP là một protocol, gửi những package độc lập gọi là các datagrams, từ máy này tới máy khác, không đảm bảo chắc chắn sẽ thành công. UDP không dựa trên connection như TCP. Ports: Nói một cách tổng quát, một máy tính nối mạng là một connection vật lý đối với mạng đó. Tất cả dữ liệu gửi cho một máy tính thông qua connection đó. Tuy nhiên, dữ liệu có thể được gửi cho những ứng dụng khác nhau trên máy đó. Vậy thì làm cách nào máy tính biết ứng dụng nào sẽ nhận dữ liệu được gửi đến? Ðiều này được giải quyết thông qua việc sử dụng Ports, mỗi ứng dụng mạng có một port tương ứng. Dữ liệu truyền qua mạng có kèm theo thông tin địa chỉ nhằm xác định máy tính và port đích. Mỗi máy tính được xác định bằng một địa chỉ IP 32-bits, IP protocol dùng địa chỉ này để phân phát dữ liệu đúng cho từng máy. Port được xác định bằng một số 16-bits, các protocol TCP và UDP dùng port number để phân phát data tới đúng cho từng ứng dụng. Trong việc truyền nhận data dựa trên connection, một ứng dụng thiết lập một connection với một ứng dụng khác bằng cách gắn một socket cho mỗi port number. Ðiều này có ý nghĩa đăng ký ứng dụng với hệ thống để ứng dụng có thể nhận tất cả data được gửi đến cho port đó. Không thể có hai ứng dụng dùng chung một port.Trong việc truyền nhận data dựa trên datagram, datagram chứa port number của ứng dụng đích mà nó gửi tới. packet app app app app TCP/IP port port port port port data   Ðịnh nghĩa: Các protocol TCP và UDP dùng ports để map incoming data cho một quá trình đang chạy trên một máy tính. Port number nằm trong khoảng 0-65535 (vì ports được biểu diễn bằng số nguyên 16-bits). Những port nằm trong khoảng 0-1023 là những port dành riêng cho những dịch vụ quen thuộc như HTTP, FTP và các dịch vụ của hệ thống (những port này gọi là các well-known port). Những ứng dụng mạng của bạn không nên dùng những port trong khoảng này. packet http ftp telnet echo TCP/IP or UDP 80 21 3 7 7 Data Thông qua những lớp trong package java.net, những chương trình Java có thể dùng TCP hay UDP để truyền nhận data qua Internet. Các lớp URL, URLConnection, Socket và ServerSocket dùng TCP. Các lớp DatagramPacket và DatagramServer dùng UDP. Java sử dụng HTTP để phân phát các Applet đa nền, có thể chạy trong môi trường Browser. Nhìn chung, đây là công dụng chính của Java : tạo ra các trang HTML có nội dung động. Tuy nhiên, đây chỉ là mặt ngoài của cái mà Java có thể làm được thực sự. Các Net-package và kiến trúc Java cho phép nó được dùng như một kiến trúc động, có thể chủ động dùng nguồn code, data, và input thông qua Internet. Bằng cách tổng hợp các Java-package, programmers có thể phối hợp chương trình của mình cùng các protocol Telnet, FTP, NNTP, WWW để tạo ra các ứng dụng mạng, thay vì chỉ chạy trên một máy như trước đây. Java tương tác với Internet theo cách riêng của nó, dữ liệu kéo về dưới dạng các file bytecode (.class), các file khác như ảnh, audio hay input từ việc tương tác với các user khác. Chức năng này được giao tiếp chính thông qua môi trường Browser support Java; mặc dù vậy, interpreter cũng có thể sử dụng các connection mạng. Nhằm đáp ứng hai khả năng quan trọng là tính có thể mở rộng và tính đa nền, Java đã cung cấp một kiến trúc hướng đối tượng không bị ràng buộc bởi việc thực hiện chương trình được compile từ trước khi thực thi (dạng file .EXE). Ngoài ra, để đáp ứng được những yêu cầu của người sử dụng, Java phải đảm bảo tính an toàn, hiệu suất cao. Tuy nhiên, cho đến thời điểm hiện tại, tốc độ thực thi một chương trình Java còn quá chậm. Hy vọng điều này sẽ được cải thiện hơn khi có những phần cứng support Java riêng biệt. Các tính chất an toàn, đa nền,. . .của ngôn ngữ Java được giải quyết bằng interpreted design. Bằng cách Compile code ra dạng máy ảo, và tạo ra memory layout tại thời điểm chạy chương trình thay vì tại thời điểm compile, Java có khả năng truy xuất điều kiện của code trước khi nó được thực thi trên một máy client. Tất cả những ưu điểm trên phải trả giá cho hiệu suất thực thi chương trình thấp. Tuy nhiên, điều này đã được khắc phục phần nào bằng cách tạo code trung gian dưới dạng bytecode, cung cấp khả năng thực hiện chương trình Multithread khá dễ dàng, và đặc biệt hơn là chiến lược quản lý bộ nhớ với việc dọn rác tự động. Sau đây là một số hiểu biết cơ bản về networking, Threads, Synchronization, Exceptions và Java-Security do ngôn ngữ Java cung cấp. 2. Networking: Việc sử dụng những khả năng networking do Java support khá dễ dàng so với C và C++. Applet được nhúng trong các file HTML. Ðể chạy những Applet qua mạng, việc trước tiên cần là load các trang HTML này về máy cục bộ. Các applet được nhúng trong các trang HTML thông qua phần khai báo APPLET. Ngoài những lớp được thực hiện bởi applet, những lớp thư viện khác do Browser cung cấp. Việc load các file ảnh và file audio được thực hiện thông qua lớp URL (package java.net). Lớp này biểu hiện một Uniform Resource Locator, là địa chỉ của tài nguyên nào đó trên mạng. Lấy ví dụ, để load một file ảnh từ mạng, chương trình Java đầu tiên cần tạo một URL chứa địa chỉ chỉ tới file ảnh đó, sau đó dùng một số hàm cần thiết để connect và truy xuất file ảnh đó. Nhìn chung, điểm nổi bật của Networking do Java mang lại là tính tiện lợi và dễ sử dụng. Ðiều này có thể hiểu rõ hơn trong phần giới thiệu về URLs, Socket ở những phần sau của tài liệu này. 2.1. Giao tiếp giữa phần client và Browser ở máy local: a. URLs Nếu bạn từng giao tiếp với World Wide Web, hẳn bạn không lạ gì với khái niệm URL và chắc bạn cũng đã dùng các URL để truy xuất các trang HTML trên Web. URL là từ viết tắt của Uniform Resource Locator, là một tham chiếu (một địa chỉ ) tới một tài nguyên trên Internet. URL là toàn bộ địa chỉ của Web Site hoặc trang Web. Mỗi URL có ít nhất hai phần. Phần đầu tiên của URL ( như http:// là giao thức truyền thông, dùng để truy cập Web site, còn hai dấu "//"là mã mạng , phần thứ hai www.java.sun.com, là tên không trùng lặp của Web site, gọi là tên vùng hoặc tên miền(domain name). Phần tên vùng theo sau dấu chấm cuối cùng, tức .com, gọi là tên vùng cao nhất, ám chỉ loại tổ chức cao nhất, một loại tổ chức xuất bản Web. Có 5 loại URL : file, http, gopher, news, partials. - Cú pháp chung của một URL là : ://:// File URL :Áp dụng cú pháp chung trên thì file URL chỉ tới file foobar.txt trong thư mục pub/files/ trên máy file Server tên là "ftp.yoyodyne.com": file://ftp.yoyodyne.com/pub/files/foobar.txt tương tự ta có file URL chỉ tới thư mục "pub" trên máy FTP Server : file://ftp.yoyodyne.com/pub - Http URL : Ví dụ : - Gopher URL : Ví dụ : gopher://gopher.yoyodyne.com/ gopher://gopher.banzai.edu:1234/ - News URL : Không giống như những URL khác, để chỉ tới 1 newsgroup tên là "rec.gardening" thì news URL là: news:rec.gardening - Partials URL : Ðây là một loại URL dùng để chỉ tới một resource có cùng thư mục, cùng tên máy với một resource đã có sẵn. Ví dụ : http URL chỉ tới 1 file như sau : Vậy thì lúc này chúng ta có thể dùng partial URL, hay relative URL để chỉ tới một file khác trong cùng một thư mục, cùng một máy với file tên là "afile.html" như trên. Ví dụ: trong thư mục trên có file tên là "anotherfile.html", thì lúc này partial URL chỉ tới file trên là :anotherfile.html. Bạn có thể tham khảo thêm về URL ở địa chỉ sau: Tất cả các URL đều có 2 phần tử chính : 1.Kiểu Protocol. 2.Tên tài nguyên. Cách dễ nhất để tạo một URL là dùng một chuỗi làm đối số cho URL constructor: URL u = new URL(""); Ðây là một URL tuyệt đối vì nó đặc tả toàn bộ tên tài nguyên. Một constructor hữu dụng khác là một URL tương đối : URL data = new URL(u,"conference/conference.html"); URL này đặc tả file conference.html, nằm trong thư mục conference của URL u. Trong chương trình, URL được sử dụng để load file chứa các nhóm hiện đang tồn tại, file chứa danh sách các user trong một nhóm, log file (file chứa thời điểm các user login, logout; các nhóm được tạo ra, delete), file help. Ðể phát triển đề tài này thành các đề tài khác yêu cầu thêm một số chức năng như truyền nhận file, truy xuất cơ sở dữ liệu và cập nhật ngay ở client khi dữ liệu ở server có thay đổi, cần phải có

Các file đính kèm theo tài liệu này:

  • docXây dựng dịch vụ Chat trên mạng - Trường đại học bách khoa hà nội - trường đại học thuỷ sản khoa công nghệ thông tin - năm 2003 - 112 trang.doc