Tìm hiểu và xây dựng hệ thống server chat multi client bằng ngôn ngữ lập trình java

100 16 0
Tìm hiểu và xây dựng hệ thống server chat multi   client bằng ngôn ngữ lập trình java

Đ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 VINH KHOA CÔNG NGHỆ THÔNG TIN BÙI THỊ KIỀU BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đồ án: TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG SERVER CHAT MULTI CLIENT BẰNG NGÔN NGỮ LẬP TRÌNH JAVA Nghệ An, tháng 01 năm 2016 TRƢỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đồ án: TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG SERVER CHAT MULTI – CLIENT BẰNG NGÔN NGỮ LẬP TRÌNH JAVA Sinh viên thực hiện: Bùi Thị Kiều – Mã sinh viên: 1151073710 Lớp: 52K2_CNTT Giáo viên hướng dẫn: TS Lê Văn Minh Nghệ An, tháng 01 năm 2016 Đồ án tốt nghiệp đại học LỜI CẢM ƠN Lời em xin đƣợc bày tỏ lòng biết ơn chân thành tới thầy TS Lê Văn Minh - giảng viên khoa CNTT trƣờng Đại học Vinh, ngƣời trực tiếp giảng dạy tận tình giúp đỡ, bảo em thời gian qua Cảm ơn thầy hƣớng dẫn, định hƣớng truyền thụ cho em kiến thức q báu để em hồn thành tốt đồ án tốt nghiệp Em xin chân thành cảm ơn thầy giáo, cô giáo trƣờng đại học Vinh, đặc biệt thầy cô khoa CNTT, ngƣời tận tình bảo, truyền đạt kiến thức bổ ích học tập nhƣ sống suốt thời gian học vừa qua Dƣới em tìm hiểu nghiên cứu đƣợc thời gian qua “Tìm hiểu xây dựng hệ thống server chat multi - client ngôn ngữ lập trình Java” Do tình thực tế kiến thức cịn hạn chế, nên chƣa hoàn thiện cách tốt nhất, em mong nhận đƣợc bảo thầy tham gia đóng góp ý kiến bạn để em hồn thành tốt đề tài Em xin cảm ơn Nghệ An, tháng 12 năm 2015 Sinh viên Bùi Thị Kiều SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT i Đồ án tốt nghiệp đại học MỤC LỤC LỜI MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu đề tài Công nghệ sử dụng Chƣơng KIẾN THỨC CĂN BẢN .2 1.1 Mạng máy tính 1.1.1 Định nghĩa mạng máy tính 1.1.2 Phân loại mạng máy tính 1.1.3 Giao thức mạng 1.1.4 Các dịch vụ mạng 1.1.5 Mơ hình hoạt động mạng máy tính 1.1.6 Một số giao thức điều khiển truyền liệu 1.2 Giới thiệu ngơn ngữ lập trình java 1.2.1 Một số tính chất java 1.2.2 Các kiểu ứng dụng Java 1.2.3 Lập trình hƣớng đối tƣợng Java 10 1.2.4 File I/O Java 12 1.2.5 Lập trình giao diện với Swing 18 1.3 Lý chọn Java làm ngơn ngữ lập trình đồ án 20 Chƣơng HỆ THỐNG CHAT .21 2.1 Các kĩ thuật sử dụng 21 2.1.1 RMI kĩ thuật lập trình phân tán đối tƣợng .21 2.2 Giao thức UDP 24 2.2.1 Tổng quan giao thức UDP .24 2.2.2 Mơ hình truyền thơng UDP client/server .25 2.2.3 Lập trình ứng dụng UDP java 26 Chƣơng MƠ HÌNH VÀ MỘT SỐ GIAO DIỆN CHƢƠNG TRÌNH PHÍA CLIENT VÀ SERVER 28 3.1 Phân tích đặc tả yêu cầu 28 3.1.1 Thu thập yêu cầu 28 3.2 Phân tích hệ thống 29 3.2.1 Sơ đồ ngữ cảnh 29 3.2.2 Biểu đồ dòng liệu 29 SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT ii Đồ án tốt nghiệp đại học 3.2.3 Thiết kế sở liệu 30 3.3 Use case tổng quát 30 3.4 Sơ đồ tiến trình 31 3.4.1 Đăng ký tài khoản 31 3.4.2 Đăng nhập .32 3.4.3 Thoát .33 3.4.4 Gửi tin nhắn 34 3.4.5 Gửi tập tin .35 3.4.6 Thay đổi trạng thái online/ offline 36 3.4.7 Xem nhật ký trò chuyện 37 3.5 Thiết kế giao diện chƣơng trình 38 3.5.1 Đăng ký, đăng nhập, đăng xuất 38 3.5.2 Danh sách bạn bè online .40 3.5.3 Chức online, offline .40 3.5.4 Trò chuyện 41 3.5.5 Nhận/Gửi tệp tin 41 KẾT LUẬN 44 TÀI LIỆU THAM KHẢO 45 SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT iii Đồ án tốt nghiệp đại học DANH MỤC HÌNH Hình 1.1: Phân loại mạng máy tính Hình 1.2: Mơ hình peer to peer .5 Hình 1.3: Mơ hình client/server .6 Hình 1.4: Sơ đồ vòng đời Thread 16 Hình 1.5: Cây phân cấp lớp Swing container 18 Hình 2.1: Nhiều dịch vụ đăng ký với đăng ký 21 Hình 2.2: Đối tƣợng stub gọi đối tƣợng skeleton 22 Hình 2.3: Kiến trúc chƣơng trình kiểu RMI 22 Hình 3.1: Giao diện đăng ký tài khoản 38 Hình 3.2: Giao diện đăng nhập 39 Hình 3.3: Giao diện danh sách bạn bè 40 Hình 3.4: Giao diện thay đổi trạng thái online/offline 40 Hình 3.5: Giao diện trò chuyện .41 Hình 3.6: Giao diện gửi file 42 Hình 3.7: Giao diện nhận file 42 SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT iv Đồ án tốt nghiệp đại học LỜI MỞ ĐẦU Lý chọn đề tài Hiện nay, xu hƣớng công nghệ ngày phát triển mạnh mẽ Việc nắm bắt ứng dụng công nghệ thông tin lĩnh vực khoa học, kinh tế, xã hội đem lại cho doanh nghiệp tổ chức thành tựu lợi ích to lớn Chia sẻ trao đổi thông tin ngƣời ngày trở nên cần thiết đa dạng nội dung hình thức Con ngƣời trao đổi thông tin, liên lạc với khơng tin nhắn điện thoại mà cịn internet Ta bắt gặp ứng dụng chat nơi, thông qua Facebook, Zalo, Line,… website quảng cáo, bán hàng, tƣ vấn, hỗ trợ trực tiếp khách hàng thông qua chat trực tuyến Trên sở thực tế nhƣ vậy, em xây dựng hế thống server chat multi - client ngôn ngữ lập trình Java Đề tài gồm phần mở đầu, ba chƣơng phần kết luận Chƣơng 1: Kiến thức Chƣơng 2: Hệ thống chat multiclient - server Chƣơng 3: Mơ hình số giao diện chƣơng trình phía client server Mục tiêu đề tài Hiểu khái niệm, phân tích giải tốn theo hƣớng lập trình hƣớng đối tƣợng, nắm rõ chế phân tán RMI để xây dựng ứng dụng chat mạng LAN hiệu Công nghệ sử dụng Đồ án đƣợc thiết kế theo phƣơng pháp lập trình hƣớng đối tƣợng, ngơn ngữ lập trình Java Sử dụng Netbeans để lập trình chƣơng trình SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT Đồ án tốt nghiệp đại học Chƣơng KIẾN THỨC CĂN BẢN 1.1 Mạng máy tính 1.1.1 Định nghĩa mạng máy tính Mạng máy tính tập hợp máy tính đƣợc kết nối với đƣờng truyền theo cầu trúc thơng qua máy tính trao đổi thơng tin qua lại cho Đƣờng truyền thiết bị truyền dẫn có dây hay khơng dây dùng để chuyển tín hiệu điện từ máy tính sang máy tính khác Đƣờng truyền kết nối dây cáp đồng trục, cáp xoắn, cáp quang, dây điện thoại, sóng vơ tuyến Các đƣờng truyền liệu tạo nên cấu trúc mạng 1.1.2 Phân loại mạng máy tính Do mạng máy tính đƣợc phát triển khắp nơi với ứng dụng ngày đa dạng nên việc phân loại mạng máy tính việc phức tạp Dựa vào phạm vi phân bố mạng ta phân loại mạng nhƣ sau: - Mạng cục LAN (Local Area Network): Mạng LAN nhóm máy tính thiết bị truyền thơng mạng đƣợc kết nối với khu vực nhỏ nhƣ tịa nhà cao ốc - Mạng thị MAN: (Metropolitian Area Network): Mạng MAN gần giống nhƣ mạng LAN nhƣng giới hạn thành phố hay quốc gia Mạng MAN nối kết mạng LAN lại với thông qua phƣơng tiện truyền dẫn khác (cáp quang, cáp đồng, sóng) phƣơng thức truyền thông khác - Mạng diện rộng WAN (Wide Area Network): Mạng WAN bao phủ vùng địa lý rộng lớn quốc gia, lục địa hay tồn cầu Mạng WAN thƣờng mạng cơng ty đa quốc gia hay tồn cầu, điển hình mạng internet Do phạm vi rộng lớn mạng WAN nên thông thƣờng mạng WAN tập hợp mạng LAN, MAN nối lại với phƣơng tiện nhƣ: vệ tinh, sóng viba, cáp quang, cáp điện thoại SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT i Đồ án tốt nghiệp đại học Hình 1.1: Phân loại mạng máy tính - Mạng internet: Là trƣờng hợp đặc biệt mạng WAN, cung cấp dịch vụ tồn cầu nhƣ mail, web, chat, ftp phục vụ cho ngƣời 1.1.3 Giao thức mạng Giao thức mạng tập quy tắc, quy ƣớc để trao đổi thông tin hai hay hệ thống máy tính thiết bị máy tính với Có nhiều loại giao thức đƣợc sử dụng mạng máy tính nhƣ: Apple Talk, DLC nhƣng giao thức đƣợc sử dụng rộng rãi mạng máy tính TCP/IP Các tầng OSI (Open Systems Interconnection Reference Model) định nghĩa mơ hình tầng giao thức cách mà chúng hoạt động với Chúng ta so sánh tầng OSI với cài đặt cụ thể: Chồng giao thức TCP/IP dạng cụ thể mơ hình OSI, bao gồm tầng Giao thức IP tƣơng ứng với tầng mơ hình OSI (tầng mạng); TCP UDP tƣơng ứng với tầng (tầng giao vận) mơ hình OSI, chúng thực nhiệm vụ tầng phiên, tầng trình diễn, tầng ứng dụng 1.1.4 Các dịch vụ mạng Router: Router thiết bị trung gian mạng, kết nối nhiều mạng vật lý Một mạng có nhiều host đƣợc phân chia thành phần riêng, hay gọi subnet Ƣu điểm subnet là: SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT ii Đồ án tốt nghiệp đại học a Hiệu đƣợc cải thiện cách giảm broadcast, broadcast thông điệp đƣợc gửi tới tất nút mạng b Khả hạn chế ngƣời dùng mạng xác định đƣa ƣu điểm bảo mật c Các subnet nhỏ dễ quản lý so với mạng lớn Các router không đƣợc sử dụng LAN, chúng có vai trị quan trọng WAN Router nhận thơng điệp chuyển tiếp tới đích cách sử dụng đƣờng tốt tới đích Một Router lƣu giữ bảng định tuyến liệt kê tất cách mà mạng đạt tới Thơng thƣờng có số đƣờng từ mạng tới mạng khác, nhƣng có số tốt nhất, đƣờng đƣợc mơ tả bảng định tuyến Các router truyền tin cách sử dụng giao thức định tuyến để phát router khác mạng, hỗ trợ cho việc trao đổi thông tin mạng đƣợc gắn với định tuyến Thông tin mà định tuyến thu thập đƣờng mạng đƣợc gọi độ đo router, bao gồm thơng tin nhƣ mát gói tin thời gian truyền tin Thông tin đƣợc sử dụng để tạo độ đo tùy thuộc vào giao thức định tuyến: d Giao thức định tuyến vectơ khoảng cách e Các giao thức RIP(Routing Information Protocol) IGRP(Interior Gateway Routing Protocol) sử dụng biến đếm để số router mà gói tin phải qua để đến đích Các giao thức thƣờng lựa chọn đƣờng với router, mà khơng quan tâm đến tốc độ độ tin cậy f Các giao thức định tuyến trạng thái liên kết g Việc tính tốn đƣờng tốt giao thức định tuyến OSPF (Open Shortest Path Firts) BGP (Boder Gateway Protocol) quan tâm đến nhiều yếu tố nhƣ tốc độ, độ tin cậy, chí chi phí đƣờng h Các giao thức định tuyến lai i Các giao thức sử dụng kết hợp việc tính tốn trạng thái liên kết vectơ khoảng cách SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT iii Đồ án tốt nghiệp đại học 3.6 Sơ đồ tiến trình 3.4.1 Đăng ký tài khoản Begin Đăng ký Thông báo lỗi check= null T F Check validate T F Server điều hướng F check server T Chọn server kết nối client kiểm tra tồn F T main program End SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 31 Đồ án tốt nghiệp đại học 3.4.2 Đăng nhập Begin Đăng ký Thông báo lỗi Thông báo lỗi check= null T F Check validate T F Server điều hướng F check server T Chọn server kết nối client Check login main program End SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 32 Đồ án tốt nghiệp đại học 3.4.3 Thoát Begin Đăng ký Confirm logout Thoát hình Xóa tất form End SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 33 Đồ án tốt nghiệp đại học 3.4.4 Gửi tin nhắn Begin Get Friend Frame chat user Send sms Send sms Server Send sms Send sms Frame chat friend End SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 34 Đồ án tốt nghiệp đại học 3.4.5 Gửi tập tin Begin Frame chat user Open file no yes Server Frame chat friend Dialog yes no Save file end SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 35 Đồ án tốt nghiệp đại học 3.4.6 Thay đổi trạng thái online/ offline Begin Main frame Set online/ offline Server xử lý database Main frame check fiend, update End SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 36 Đồ án tốt nghiệp đại học 3.4.7 Xem nhật ký trò chuyện Begin Frame chat user Server xử lý database Frame chat history End SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 37 Đồ án tốt nghiệp đại học 3.5 Thiết kế giao diện chƣơng trình 3.5.1 Đăng ký, đăng nhập, đăng xuất 3.5.1.1 Đăng ký Hình 3.1: Giao diện đăng ký tài khoản Kích hoạt chƣơng trình Tạo tài khoản (dùng cho ngƣời cho có tài khoản hệ thống MultiChat Server-Client) ▪ Ngƣời sử dụng đăng ký tài khoản với thông tin trên: - Tài khoản: tên tài khoản để ngƣời sử dụng đăng nhập vào hệ thống - Kiểm tra: sau tạo tài khoản, ngƣời dùng bấm nút kiểm tra để hệ thống kiểm tra xem tên tài khoản đƣợc đăng ký trƣớc chƣa Nếu chƣa qua bƣớc tiếp theo, có ngƣời dùng phải đăng ký lại tài khoản với tên khác - Mật khẩu: chuỗi ký tự ngƣời dùng đặt để bảo vệ tài khoản.Khi đăng nhập phải nhập tên Tài khoản Mật Nếu hai sai ngƣời dùng bắt buộc phải nhập lại đƣợc vào hệ thống - Họ tên: ngƣời dùng phải nhập họ tên - Giới tính: ngƣời dùng kích vào giới tính chọn hai trƣờng Nam Nữ - CMND: số chứng minh nhân dân ngƣời dùng gồm chín số Nếu nhập báo lỗi - Email: địa thƣ điện tử ngƣời dùng - Điện thoại: ngƣời dùng nhập dãy mƣời chữ số, sai chƣơng trình báo lỗi SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 38 Đồ án tốt nghiệp đại học - Địa chỉ: mục khơng bắt buộc, ngƣời dùng nhập không ▪ Sau điền đầy đủ thông tin, ngƣời dùng bấm nút Đăng ký để nhập thông tin vào hệ thống ▪ Nút Làm làm tất thông tin bảng đăng ký 3.5.1.2 Đăng nhập Hình 3.2: Giao diện đăng nhập Khởi động chƣơng trình - vào login ▪ Sau login vào hệ thống Mọi ngƣời dùng có tài khoản thấy đƣợc ngƣời hệ thống online ▪ Login hệ thống chƣơng trình kiểm tra.nếu tài khoản sai thông báo sai, chƣơng trình kết nối vào hệ thống cho phép ngƣời dùng bắt đầu trò chuyện SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 39 Đồ án tốt nghiệp đại học 3.5.2 Danh sách bạn bè online Hình 3.3: Giao diện danh sách bạn bè Hiển thị ngƣời truy cập hệ thống, truy cập vào hệ thống chế độ Online ▪ Kích đúp chuột trái vào ngƣời muốn trò chuyện lên khung trò chuyện 3.5.3 Chức online, offline Hình 3.4: Giao diện thay đổi trạng thái online/offline SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 40 Đồ án tốt nghiệp đại học Khi click vào “Hệ thống”  "Offline” Hệ thống thay đổi trạng thái ngƣời dùng từ Online thành Offline, ngƣời sử dụng khác không thấy đƣợc bạn danh sách online họ Tuy nhiên bạn trị chuyện với họ cách bình thƣờng ▪ Khi click vào “Hệ thống”  "Offline” Hệ thống thay đổi trạng thái ngƣời dùng từ Offline thành Online, ngƣời sử dụng khác thấy bạn danh sách online họ 3.5.4 Trò chuyện Hình 3.5: Giao diện trị chuyện Chức có tác dụng gửi tin nhắn chat tới ngƣời bạn muốn ▪ Sau kích đúp vào tên ngƣời sử dụng bạn muốn trò chuyện, ngƣời sử dụng nhập nội dung trò chuyện vào khung nhập bên dƣới, sau bấm Send nhấn phím Enter để gửi thông điệp ▪ Nút File cho phép ngƣời dùng gởi file kèm cách chọn đƣờng dẫn đến file bấm Open 3.5.5 Nhận/Gửi tệp tin ▪ Chức có tác dụng gửi tập tin, hình ảnh v.vv ngƣời sử dụng chọn SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 41 Đồ án tốt nghiệp đại học Sau chọn file muốn gửi cần kích vào file bấm Open file đƣợc gửi Hình 3.6: Giao diện gửi file Chức có tác dụng gửi tập tin, hình ảnh v.vv ngƣời sử dụng chọn ▪ Sau chọn file muốn gửi cần kích vào file bấm Open file đƣợc gửi Hình 3.7: Giao diện nhận file SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 42 Đồ án tốt nghiệp đại học Chƣơng trình lên thơng báo cho ngƣời nhận đƣợc file thông báo Bấm Yes để tải xuống lƣu file, bấm No hủy việc file Ngƣời dùng chọn nơi lƣu file tên file lƣu xuống ▪ Bấm Save để lƣu file Cancel để hủy việc lƣu xuống SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 43 Đồ án tốt nghiệp đại học KẾT LUẬN i Kết đạt đƣợc Trong suốt trình nghiên cứu vận dụng kiến thức đƣợc trang bị nhà trƣờng trình học hỏi em cố gắng hoàn thiện đạt đƣợc số kết sau: - Xây dựng đƣợc ứng dụng chat đơn giản ngôn ngữ lập trình Java theo hƣớng đối tƣợng, có chức trò chuyện, gửi file, thay đổi trạng thái online/ofline, xem nhật ký trò chuyện - Hiểu đƣợc nguyên lý hoạt động ứng dụng client/server - Bằng cách áp dụng kĩ thuật phân tán RMI, cài đặt phân tán đối tƣợng client/server giúp truyền tin đơn giản ứng dụng đến ứng dụng khác, - Sử dụng giao thức truyền tin UDP giúp việc truyền tin client nhanh hơn, đảm bảo tin đƣợc truyền với tốc độ cao, nhƣng cần hạn chế tin khơng tới đƣợc đích gửi ii Hƣớng khắc phục phát triển đề tài Do thời gian trình độ cịn hạn chế nên em chƣa tìm hiểu sâu kiến thức liên quan đến vấn đề kĩ thuật lập trình phân tán đối tƣợng RMI nên đề tài nhiều hạn chế, em cố gắng phát triển thêm để ứng dụng hoàn thiện, dễ sử dụng đẩy đủ chức nhƣ: Chat nhóm, thay đổi giao diện chat, xem thông tin cá nhân ngƣời dùng… SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 44 Đồ án tốt nghiệp đại học TÀI LIỆU THAM KHẢO [1] Trần Văn Cảnh, Giáo trình Lập trình Java [2] Lê Văn Minh, Giáo trình Mạng máy tính [3] Nguyễn Phƣơng Lan, JAVA- lập trình mạng, Nxb Lao động - Xã hội, năm 2006 [4] Bruce Eckel, Thinking of Java 4th Edition, năm 2006 [5] http://www.java2s.com [6] https://docs.oracle.com/javase/8/docs/technotes/guides/rmi/ SVTH: Bùi Thị Kiều - Lớp: 52K2_CNTT 45 ... HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đồ án: TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG SERVER CHAT MULTI – CLIENT BẰNG NGÔN NGỮ LẬP TRÌNH JAVA Sinh viên thực... sống suốt thời gian học vừa qua Dƣới em tìm hiểu nghiên cứu đƣợc thời gian qua ? ?Tìm hiểu xây dựng hệ thống server chat multi - client ngôn ngữ lập trình Java? ?? Do tình thực tế kiến thức cịn hạn... Giới thiệu ngơn ngữ lập trình java Java ngơn ngữ lập trình đƣợc Sun Microsytems giới thiệu vào tháng năm 1995 Từ đó, trở thành cơng cụ lập trình lập trình viên Java đƣợc xây dựng tảng C C++ Do

Ngày đăng: 01/08/2021, 10:57

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

Tài liệu liên quan