Untitled B GIÁO D C VÀ ĐÀO T OỘ Ụ Ạ TR NG Đ I H C CÔNG NGH TPHCMƯỜ Ạ Ọ Ệ ***** ĐÔỒ ÁN L P TRÌNH M NGẬ Ạ ĐỀỒ TÀI CHAT APPLICATION & SEND FILE Ngành CÔNG NGH THÔNG TINỆ Chuyên ngành M NG MÁY TÍNHẠ Gi ng[.]
lOMoARcPSD|12114775 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CƠNG NGHỆ TPHCM ***** ĐƠỒ ÁN LẬP TRÌNH MẠNG ĐỀỒ TÀI CHAT APPLICATION & SEND FILE Ngành : CÔNG NGHỆ THƠNG TIN Chun ngành : MẠNG MÁY TÍNH Giảng viên hướng dẫẫn: THẦỒY VĂN THIỀN HOÀNG Sinh viên thực : Họ tên Nguyêẫn Đăng Quang Đặng Thành Phát Dương Hiển Vinh MSSV 1311061016 1311060941 1311061372 TP.HCM - Tháng 1, năm 2017 Lớp 13DTHM02 13DTHM02 13DTHM02 lOMoARcPSD|12114775 Chat Application & Send File Mục lục CHƯƠNG MỞ ĐẦỒU .2 Phẫần Bốối cảnh, lý thực đêầ tài Phẫần : Cơ sở lập trình .2 CHƯƠNG CƠ SỞ LÝ THUYỀẾT .4 Phẫần : Yêu cẫầu đêầ tài Phẫần : Giới thiệu mố hình Client/Server Phẫần : Giới thiệu giao thức IP/TCP Phẫần : Lập trình mạng Java CHƯƠNG : PHẦN TÍCH THIỀẾT KỀẾ CHƯƠNG TRÌNH Phẫần : Phẫn tích yêu cẫầu Phẫần : Phẫn tích chức .8 Phẫần : Phẫn tích thiêốt kêố chương trình .9 CHƯƠNG : TRIỂN KHAI THỰC HIỆN VÀ KỀẾT QUẢ 10 Phẫần : Mối trường triển khai 10 Phẫần : Kêốt thực 10 Phẫần : Chương trình 13 lOMoARcPSD|12114775 Chat Application & Send File CHƯƠNG MỞ ĐẦẦU Phầần Bốối cảnh, lý thực đềầ tài Hiện mạng internet toàn cẫầu phát triển rẫốt mạnh, đáp ứng rẫốt tốốt nhu cẫầu vêầ thống tin khoa học, giải trí, liên l ạc, mua bán, qu ảng cáo v.v người Internet trở thành m ột thành phẫần khống th ể thiêốu với sốống đại Vêầ chẫốt, Internet chẳng qua m ột h ệ thốống mạng, liên kêốt máy tính tồn thêố gi ới l ại theo nh ững chu ẩn chung Với phạm vi nhỏ rẫốt tương tự, có mạng khác WAN, LAN , mốẫi mố hình đêầu ứng dụng rẫốt nhiêầu tiện ích khác Với mục tiêu sinh viên trường với kiêốn th ức tốốt vêầ mạng, vêầ lập trình ứng dụng mạng để làm nhiêầu vi ệc khác nhau, mốn lập trình mạng đời Vì vậy, ngày hốm nay, lúc em học vêầ lập trình mạng, tìm đêầ tài với tên “Chat Application & Send File”, điêầu giúp em thực hành để có hội hiểu rõ vêầ mạng, vêầ lập trình mạng – lĩnh vực lập trình rẫốt thú vị Phầần : Cơ sở lập trình Ứng dụng hoạt động dựa vào giao thức IP/TCP để truyêần li ệu hai máy khác nhau, cụ thể đẫy máy server để cung cẫốp d ịch vụ nhiêầu máy client sử dụng dịch vụ máy server cung cẫốp đ ể cho người dùng sử dụng Ngốn ngữ lập trình đẫy ngốn ngữ Java (Phiên b ản J2SE 1.6) Java ngốn ngữ sử dụng để viêốt ứng dụng chạy hẫầu hêốt thiêốt bị (ở đẫy ta quan tẫm tới thiêốt bị có hốẫ trợ mạng) Trọng ểm, có mẫốy khả trội Java cung cẫốp mà ta sử dụng : - Lập trình đa tuyêốn trình (Cùng ứng dụng có th ể ch ạy nhiêầu tiêốn trình song song với thay phải tiêốn trình đ ợi tiêốn trình kêốt thúc thực hiện) - Java nêần tảng chạy nhiêầu loại thiêốt bị với nhiêầu hệ điêầu hành khác nên có phạm vi ứng dụng rẫốt rộng rãi lOMoARcPSD|12114775 Chat Application & Send File - Lập trình mạng Lớp quan trọng nhẫốt mà ta sử dụng lớp Socket ServerSocket lOMoARcPSD|12114775 Chat Application & Send File CHƯƠNG CƠ SỞ LÝ THUYẾẾT Phầần : Yều cầầu đềầ tài Viêốt chương trình Client/Server cho phép nhiêầu người sử dụng có th ể gửi tin nhăốn cho dạng phịng chat room có thêm chức gửi file Phầần : Giới thiệu mố hình Client/Server Server hiểu máy chủ, thường hệ thốống máy lớn, có xử lý mạnh, có khả hoạt động đáng tin cậy, có khả l ưu tr ữ d ữ liệu lớn, chuyên quản lý tài nguyên (chủ yêốu sở liệu), cung cẫốp dịch vụ mạng cho máy khách (client) sử dụng Bình thường ch ạy suốốt thời gian thực săẫn sàng chẫốp nhận yêu cẫầu kêốt nốối yêu cẫầu dịch vụ khác từ máy khách Client máy khách, thường sử dụng ng ười dùng cuốối Nó hoạt động dựa việc sử dụng dịch vụ mà máy server cung cẫốp đ ể thực cống việc mà người dùng cuốối mong muốốn Quy trình hoạt động mố hình lặp lại trình nh sau : - Client gửi yêu cẫầu lên server - Server nhận u cẫầu sẻ xử lý thích hợp tr ả lời l ại client Mố hình Client/Server lOMoARcPSD|12114775 Chat Application & Send File Phầần : Giới thiệu giao thức IP/TCP Giới thiệu vềầ TCP Giao thức TCP (Transmission Control Protocol) giao th ức h ướng kêốt nốối (connection-oriented), địi hỏi thiêốt l ập kêốt nốối tr ước băốt đẫầu gửi liệu kêốt thúc kêốt nốối việc gửi liệu hoàn tẫốt theo thứ tự: thiêốt lập kêốt nốối, truyêần liệu kêốt thúc kêốt nốối Giới thiệu vềầ IP IP địa máy tính mạng, dựa vào địa IP giao thức TCP truần liệu xác từ máy qua máy thống qua hệ thốống mạng Ở mạng, máy tính sẻ có địa IP khác nhau, từ địa IP biêốt máy m ạng ngược lại Giới thiệu vềầ cổng Port Với IP, giao thức TCP truần liệu xác từ máy qua máy mà chưa thể truyêần xác đêốn ứng d ụng máy Hiện nay, hệ thốống máy thống thường hoạt động theo chêố độ đa nhiệm, nghĩa có nhiêầu ứng dụng ch ạy m ột lúc có nhiêầu ứng dụng sử dụng dịch vụ mạng Yêu cẫầu, máy chủ A truyêần liệu cho ứng dụng u máy B máy B ph ải đảm bảo liệu phải đêốn ứng dụng u, khống phải ứng dụng v Để thực điêầu máy chủ A truyêần liệu d ữ liệu có thành phẫần thống tin giúp máy B xác định đ ược ứng dụng u Phẫần thống tin địa port máy B, có th ể hiểu lốẫ căốm ảo máy B mà ứng dụng u đăng ký đ ể đ ộc quyêần sử dụng nhăần nhận liệu từ máy chủ A Trên thực têố, địa port sốố nguyên byte có giá tr ị t đêốn 65535 Nó có đặc điểm : - Giá trị từ đêốn 1023 cổng phổ biêốn dành cho ứng d ụng thống dụng http: 80, mail : 25, ftp : 21, Telnet 23 Các giá trị cịn lại sử dụng linh hoạt lOMoARcPSD|12114775 Chat Application & Send File - Mốẫi cổng mốẫi thời điểm sử dụng cho tốối đa ứng dụng Ví dụ ứng dụng sử dụng cổng 55 ứng dụng khác khống thể sử dụng cổng 55 chừng ứng dụng trước chưa có đóng cổng 55 lại Giới thiệu vềầ Socket - Socket khái niệm để định vị dịch vụ máy tính mạng kêốt hợp hai khái niệm IP Port lại - Socket có nhiệm vụ sau : Găốn cổng máy Lăống nghe kêốt Kêốt nốối/Đóng kêốt nốối đêốn máy tính xa qua c găốn Gửi/nhận liệu Lăống nghe liệu đêốn Thực chẫốt, Socket chẳng qua kêốt hợp địa IP c máy tính cổng Port mà ứng dụng sử dụng Chính kêốt hợp mà tr thành khái niệm mà từ đó, ngốn ngữ lập trình có ch ứa gói, giao diện lập trình (API) để hốẫ trợ nhà lập trình dêẫ dàng vi ệc lẫp trình liên quan đêốn mạng qua giao thức TCP Điển hình ngốn ng ữ Java mà em sẻ giới thiệu sau đẫy Phầần : Lập trình mạng Java Giói ServerSocket Nhiệm vụ : Mở cổng kêốt nốối server, săẫn sàng hoạt động cổng public Socket(int port) : Tạo cổng kết nối cổng port Lăống nghe, chờ đợi yêu cẫầu kêốt nốối cổng kêốt nốối có yêu cẫầu lOMoARcPSD|12114775 Chat Application & Send File public accept():Chấp nhận kết nối trả đối tượng Socket mô tả nguồn kết nối đến Tạo luốầng liệu vào để truyêần liệu cổng đêốn socket máy khách (Đẫy chức quan tr ọng nhẫốt) getInputStream() : Trả luồng mà nhập liệu vào getOutputStream() : Trả luồng ghi liệu Đóng kêốt nốối lúc khống sử dụng close() : Đóng kết nối khơng cần Gói Socket Nhiệm vụ Kêốt nốối tới máy chủ thống qua địa IP sốố hiệu cổng máy chủ Public Socket(InetAddress address, int port) Tạo luốầng liệu vào Public OutputStream getOutputStream() ; Public InputStream getInputStream() ; Đóng kêốt nốối Public void Close(); Đóng kết nối Một sốố gói, lớp bổ trợ khác a Gói Swing, awt.event : tạo giao diện người dùng b Gói Runnable, Thread : Hốẫ trợ đa tiêốn trình c Gói java.io : Cung cẫốp lớp vào li ệu lOMoARcPSD|12114775 Chat Application & Send File CHƯƠNG : PHẦN TÍCH THIẾẾT KẾẾ CHƯƠNG TRÌNH Phầần : Phần tích yều cầầu Viêốt chương trình cho phép chat room nhiêầu người qua m ạng Phầần : Phần tích chức Trền Client: Đăng nhập vào server với nickname người dùng t ự chọn Nhận danh sách nick online server Gửi tin nhăốn tới người, nhiêầu người tẫốt ng ười online khác server Thực gửi file đêốn máy client khác Nhận tin nhăốn từ nickname khác gửi tới Đăng xuẫốt tài khoản Trền Server: Tạo cổng kêốt nốối săẫn sàng đón nhận kêốt nốối t client Xử lý yêu cẫầu đăng nhập từ client Nêốu nickname chưa có đăng nhập từ trước cho đăng nhập Nêốu có đăng nhập từ trước với nickname cho người đăng nhập trước phải đăng xuẫốt cho người đăng nhập vào Trả vêầ danh sách nickname online cho nickname có yêu cẫầu lOMoARcPSD|12114775 Chat Application & Send File Nhận tin nhăốn từ nickname chuyển tiêốp tới nickname khác tương ứng theo yêu cẫầu nickname gửi Loại nickname nickname yêu cẫầu đăng xuẫốt Xác nhận gửi file đêốn nickname yêu cẫầu Cho phép người sử dụng theo dõi thành viên đăng nhập, đăng xuẫốt Phầần : Phần tích thiềốt kềố chương trình Server Main Form ServerThread SocketThread Client Login Form Main Form ClientThread lOMoARcPSD|12114775 Chat Application & Send File Giao diện chat Client Giao diện Gửi File Client 12 lOMoARcPSD|12114775 Chat Application & Send File Phầần : Chương trình Cấấu trúc chương trình Chương trình máy server a.File MainForm.java Thư viện : Khai báo ban đẫầu 13 lOMoARcPSD|12114775 Chat Application & Send File Tạo hiển thị thống báo lên hình Các phương thức cẫần có mainform.java 14 lOMoARcPSD|12114775 Chat Application & Send File 15 lOMoARcPSD|12114775 Chat Application & Send File Nút “Khởi động Máy Chủ” Nút “Dừng Máy Chủ” 16 lOMoARcPSD|12114775 Chat Application & Send File b File ServerThread.java Khai báo thư viện Khai báo ban đẫầu khai báo hiển thị hình appendMessage Phương thức run() Phương thức stop() 17 lOMoARcPSD|12114775 Chat Application & Send File c File SocketThread.java Khai báo thư viện Khai báo ban đẫầu, thiêốt lập luốầng truyêần liệu Socket : DataInputStream 18 lOMoARcPSD|12114775 Chat Application & Send File Thiêốt lập kêốt nốối d File OnlineListThread.java Khai báo thư viện Khai báo thiêốt lập ban đẫầu Khai báo void run() 19 ... lập trình mạng đời Vì vậy, ngày hốm nay, lúc em học vêầ lập trình mạng, tìm đêầ tài với tên ? ?Chat Application & Send File? ??, điêầu giúp em thực hành để có hội hiểu rõ vêầ mạng, vêầ lập trình mạng. .. lOMoARcPSD|12114775 Chat Application & Send File Giao diện chat Client Giao diện Gửi File Client 12 lOMoARcPSD|12114775 Chat Application & Send File Phầần : Chương trình Cấấu trúc chương trình Chương trình. .. lOMoARcPSD|12114775 Chat Application & Send File 15 lOMoARcPSD|12114775 Chat Application & Send File Nút “Khởi động Máy Chủ” Nút “Dừng Máy Chủ” 16 lOMoARcPSD|12114775 Chat Application & Send File b File ServerThread.java