LẬP TRÌNH CHƯƠNG TRÌNH CHAT ROOM SỬ DỤNG GIAO THỨC TCP SOCKET. ThS.Trần Đình Sơn

32 551 2
LẬP TRÌNH CHƯƠNG TRÌNH CHAT ROOM SỬ DỤNG GIAO THỨC TCP SOCKET. ThS.Trần Đình Sơn

Đ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

ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: Lập trình chương trình chat room sử dụng giao thức TCP socket Sinh viên thực : LÊ QUANG DUẬT ĐỖ NGỌC TOÀN Giảng viên hướng dẫn : ThS.TRẦN ĐÌNH SƠN Đà nẵng, tháng 01 năm 2020 Lớp: 17IT1 Lớp: 17IT3 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: Lập trình chương trình chat room sử dụng giao thức TCP socket Đà Nẵng, tháng 01 năm 2020 MỞ ĐẦU Đào tạo bậc đại học hệ Kỹ sư địi hỏi sinh viên ngồi việc thành thạo kỹ lập trình việc hiểu rõ chất giao thức, ngơn ngữ lập trình mơi trường…là quan trọng.Chính ngồi việc giảng dạy ngơn ngữ lập trình giải thuật Thầy(Cơ) giảng viên Khoa luôn hướng sinh viên đến cốt lõi để sinh viên hiểu nắm rõ chất Chuẩn bị tốt cho việc tốt nghiệp kiến thức sau Với hướng đó, nhóm chúng em chọn đề tài “Lập trình chương trình chat room sử dụng giao thức TCP socket”, việc ứng dụng học mơn Lâp trình mạng Tuy đề tài khơng việc nắm rõ chất thành thạo khả lập trình địi hỏi thời gian kiến thức thật Với việc học mơ hình phân tầng mạng, trình biến đổi liệu để truyền, nhận liệu mơ hình client server, em bước hoàn thành đề tài giao, cịn nhiều thiếu sót cần hồn thiện tiếp tục phát triển Trong q trình hồn thành đồ án nhóm, giảng viên hướng dẫn ThS.Trần Đình Sơn hướng dẫn cụ thể tận tình, thầy thiếu sót điểm cần hoàn thiện Cuối em xin gửi lời cảm ơn chân thành đến Thầy Thầy Khoa tạo điều kiện giúp đỡ nhóm chúng em thời gian qua để hồn thành tốt đề tài Đà Nẵng, tháng 01 năm 2020 NHẬN XÉT (Của giảng viên hướng dẫn) Chữ ký xác nhận Giảng viên MỤC LỤC Chương Tổng quan lập trình mạng 1.1 Tổng quan mạng máy tính 1.1.1 Mạng máy tính gì? .6 1.1.2 Mô hình mạng 1.1.3 Phân loại mạng 1.2 Mô hình mạng OSI 1.3 Giao thức truyền thông 11 Chương Xây dựng chương trình Client-Server với giao thức TCP 13 2.1 Tổng quan giao thức TCP 13 2.2 Khái niệm Socket .15 2.3 Sử dụng TCP socket .16 2.4 Các bước thuật tốn xây dựng chương trình Client-Server 17 2.4.1 Các bước xây dựng chương trình server: .17 2.4.2 Thuật toán xây dựng chương trình client-server tổng quát 18 Chương Triển khai xây dựng chương trình 20 3.1 Bài toán Chat Room .20 3.2 Tổng quan ngôn ngữ Java 20 3.2.1 Java ? .20 3.2.2 Ứng dụng Java 20 3.2.3 Những đặc điểm Java 20 3.3 Viết chương trình server hoạt động đa tuyến(multi threading) .21 3.4 Viết chương trình client 26 3.5 Kết chương trình 29 KẾT LUẬN 31 Kết 31 Hạn chế 31 DANH MỤC TÀI LIỆU THAM KHẢO 32 Chương Tổng quan lập trình mạng 1.1 Tổng quan mạng máy tính 1.1.1 Mạng máy tính gì? Mạng máy tính hay hệ thống mạng (Computer Network hay Network System) kết hợp máy tính lại với thông qua thiết bị nối kết mạng phương tiện truyền thông (giao thức mạng, môi trường truyền dẫn) theo cấu trúc máy tính trao đổi thơng tin qua lại với 1.1.2 Mơ hình mạng Mạng hình (Star Network) 1.1.2.1 Có tất trạm kết nối với thiết bị trung tâm có nhiệm vụ nhận tín hiệu từ trạm chuyển đến trạm đích Tùy theo yêu cầu truyền thông mạng mà thiết bị trung tâm hub, switch, router hay máy chủ trung tâm Vai trò thiết bị trung tâm thiết lập liên kết Point – to – Point - Ưu điểm: Thiết lập mạng đơn giản, dễ dàng cấu hình lại mạng (thêm, bớt trạm), dễ dàng kiểm soát khắc phục cố, tận dụng tối đa tốc độ truyền đường truyền vật lý - Khuyết điểm: Độ dài đường truyền nối trạm với thiết bị trung tâm bị hạn chế (bán kính khoảng 100m với cơng nghệ nay) Mạng tuyến tính (Bus Network) 1.1.2.2 Có tất trạm phân chia đường truyền chung (bus) Đường truyền giới hạn hai đầu hai đầu nối đặc biệt gọi terminator Mỗi trạm nối với trục qua đầu nối chữ T (Tconnector) thiết bị thu phát (transceiver) Mơ hình mạng Bus hoạt động theo liên kết Point–to–Multipoint hay Broadcast - Ưu điểm: Dễ thiết kế chi phí thấp - Khuyết điểm: Tính ổn định kém, nút mạng hỏng toàn mạng bị ngừng hoạt động Mạng hình vịng (Ring Network) 1.1.2.3 Tín hiệu truyền vòng theo chiều Mỗi trạm mạng nối với qua chuyển tiếp (repeater) có nhiệm vụ nhận tín hiệu chuyển tiếp đến trạm vịng Như tín hiệu lưu chuyển vòng theo chuỗi liên tiếp liên kết Point–to–Point repeater - Ưu điểm: Mạng hình vịng có ưu điểm tương tự mạng hình - Khuyết điểm: Một trạm cáp hỏng toàn mạng bị ngừng hoạt động, thêm bớt trạm khó hơn, giao thức truy nhập mạng phức tạp 1.1.3 Phân loại mạng LAN 1.1.3.1 LAN (local area network), hay gọi "mạng cục bộ", mạng tư nhân nhà, khu vực (trường học hay quan chẳng hạn) có cỡ chừng vài km Chúng nối máy chủ máy trạm văn phòng nhà máy để chia sẻ tài nguyên trao đổi thông tin LAN có đặc điểm: - Giới hạn tầm cỡ phạm vi hoạt động từ vài mét km - Thường dùng kỹ thuật đơn giản có đường dây cáp (cable) nối tất máy Vận tốc truyền liệu thông thường 10 Mbps, 100 Mbps, Gbps, gần 100 Gbps - Ba kiến trúc mạng kiểu LAN thông dụng bao gồm: o Mạng bus hay mạng tuyến tính Các máy nối cách liên tục thành hàng từ máy sang máy Ví dụ Ethernet (chuẩn IEEE 802.3) o Mạng vòng Các máy nối máy cuối lại nối ngược trở lại với máy tạo thành vịng kín Thí dụ mạng vịng thẻ IBM (IBM token ring) o Mạng 1.1.3.2 MAN MAN (metropolitan area network), hay cịn gọi "mạng thị", mạng có cỡ lớn LAN, phạm vi vài km Nó bao gồm nhóm văn phịng gần thành phố, cơng cộng hay tư nhân có đặc điểm: - Chỉ có tối đa hai dây cáp nối - Không dùng kỹ thuật nối chuyển - Có thể hỗ trợ chung vận chuyển liệu đàm thoại, hay truyền hình Ngày người ta dùng kỹ thuật cáp quang để truyền tín hiệu Vận tốc có thể đạt đến 10 Gbps 1.1.3.3 WAN WAN (wide area network), gọi "mạng diện rộng", dùng vùng địa lý lớn thường cho quốc gia hay lục địa, phạm vi vài trăm vài ngàn km Chúng bao gồm tập hợp máy nhằm chạy chương trình cho người dùng Các máy thường gọi máy lưu trữ(host) hay cịn có tên máy chủ, máy đầu cuối Các máy nối mạng truyền thông (communication subnet) hay gọn mạng (subnet) Nhiệm vụ mạng chuyển tải thông điệp (message) từ máy chủ sang máy chủ khác 1.2 Mơ hình mạng OSI Mơ hình OSI (Open Systems Interconnection Reference Model, viết ngắn OSI Model OSI Reference Model) - tạm dịch Mơ hình tham chiếu kết nối hệ thống mở - thiết kế dựa vào nguyên lý tầng cấp, lý giải cách trừu tượng kỹ thuật kết nối truyền thơng máy vi tính thiết kế giao thức mạng chúng Mơ hình phát triển thành phần kế hoạch Kết nối hệ thống mở (Open Systems Interconnection) ISO IUT-T khởi xướng Nó cịn gọi Mơ hình bảy tầng OSI Tường trình tầng cấp mẫu hình OSI: - Tầng vật lý (Physical Layer): Tầng vật lý định nghĩa tất đặc tả điện vật lý cho thiết bị Trong bao gồm bố trí chân cắm(pin), hiệu điện thế, đặc tả cáp nối (cable) - Tầng liên kết liệu (Data-Link Layer): Tầng liên kết liệu cung cấp phương tiện có tính chức quy trình để truyền liệu thực thể mạng (truy cập đường truyền, đưa liệu vào mạng), phát sửa chữa lỗi tầng vật lý có - Tầng mạng (Network Layer): Tầng mạng cung cấp chức quy trình cho việc truyền chuỗi liệu có độ dài đa dạng, từ nguồn tới đích, thơng qua nhiều mạng, trì chất lượng dịch vụ (quality of service) mà tầng giao vận yêu cầu - Tầng giao vận (Transport Layer): Tầng giao vận cung cấp dịch vụ chuyên dụng chuyển liệu người dùng đầu cuối, nhờ tầng khơng phải quan tâm đến việc cung cấp dịch vụ truyền liệu đáng tin cậy hiệu 10 3.2.2 Các bước xây dựng chương trình client Chương trình client xây dựng gồm bước sau: Tạo TCP socket Yêu cầu kết nối đến server.Nếu server chấp nhận, kênh kết nối thiết lập Trao đổi liệu với chương trình server Đóng kết nối Hình 6.Thuật tốn xây dựng chương trình client 2.4.2 Thuật tốn xây dựng chương trình client-server tổng qt Từ bước xây dựng chương trình client server trên, q trình xây dựng ứng dụng theo mơ hình client-server mơ tả băng thuật tốn sơ đồ khơi sau: 18 Hình 7.Thuật tốn xây dựng ứng dụng client-server tổng quát Sau chương trình server tạo TCP socket gắn số hiệu công vào TCP socket, chương trình server băt đâu chờ lăng nghe u câu kêt nơi từ chương trình client Do TCP giao thức truyền thơng có kết nối nên để trao đổi liệu với chương trình server, chương trình client phải tạo kênh kết nối đến chương trình server Chương trình client tạo TCP socket, sau gửi yêu cầu kết nối đến chương trình server chạy địa IP số hiệu cổng xác định Chương trình server nhận u cầu kết nối gửi đến, khơng có lỗi chấp nhận kết nối Ngay chương trình server chấp nhận kết nối, kênh kết nối thiết lập phép chương trình client server trao đổi liệu với nhau.ÁD 19 Chương Triển khai xây dựng chương trình 3.1 Bài tốn Chat Room - Chat room hình thức thảo luận trực tiếp Internet, bạn thảo luận, trao đổi nhận câu trả lời lập tức, tương tự bạn nói chuyện qua điện thoại - Trong đồ án này, nhóm sử dụng ngơn ngữ Java để lập trình chương trình Chat room 3.2 Tổng quan ngôn ngữ Java 3.2.1 Java ? - Java ngơn ngữ lập trình hướng đối tượng Sun MicroSystem đưa vào thập niên 90 - Chương trình viết ngơn ngữ lập trình java chạy hệ thống có cài máy ảo java (Java Virtual Machine) 3.2.2 Ứng dụng Java Ngày Java sử dụng với mục đích sau: - Phát triển ứng dụng cho thiết bị điện tử thông minh, ứng dụng cho doanh nghiệp với quy mô lớn - Tạo trang web có nội dung động (web applet), nâng cao chức server - Phát triển nhiều loại ứng dụng khác nhau: Cơ sở liệu, mạng, Internet, viễn thơng, giải trí, 3.2.3 Những đặc điểm Java Tiêu chí hàng đầu Ngơn ngữ Lập trình Java "Write Once, Run Anywhere" (Viết lần, chạy nơi), nghĩa Java cho phép viết code lần thực thi hệ điều hành khác Ví dụ, viết code Hệ điều hành Windows thực thi Hệ điều hành Linux Mac OS Với đặc điểm bật đó, Java có đặc điểm sau: 20 - Đơn giản quen thuộc: Vì Java kế thừa trực tiếp từ C/C++ nên có đặc điểm ngơn ngữ này, Java đơn giản dựa sở C++ Sun cẩn thận lược bỏ tính khó của C++ để làm cho ngôn ngữ dễ sử dụng - Hướng đối tượng quen thuộc - Mạnh mẽ (thể chế tự động thu gom rác - Garbage Collection) an toàn - Kiến trúc trung lập, độc lập tảng có tính khả chuyển (Portability) - Hiệu suất cao - Máy ảo (biên dịch thông dịch) - Phân tán - Đa nhiệm: Ngơn ngữ Java cho phép xâ dựng trình ứng dụng, nhiều q trình xảy đồng thời Tính đa nhiệm cho phép nhà lập trình biên soạn phần mềm đáp ứng tốt hơn, tương tác tốt thực theo thời gian thực 3.3 Viết chương trình server hoạt động đa tuyến(multi threading) Để cho phép chương trình server kết nối phục vụ nhiều chương trình client thời điểm, cần phải xây dựng chương trình server chương trình đa tuyến Trong đó, tuyến (thread) chương trình server giữ kết nối với chương trình client đảm nhận việc truyền nhận liệu với client Khi có chương trình client gửi yêu cầu kết nối đến chương trình server chương trình server phải tạo tuyến (thread) để kết nối trao đổi liệu với client 21 Hình 8.Minh họa server đa tuyến Để đối tượng thread giữ kênh kết nối với client, đối tượng thread tạo phải gắn với socket đầu cuối kênh kết nối với client Hình 9.Mơ tả chi tiết server đa tuyến Tạo class ClientThread cho Client muốn kết nối vào Server File class ClientThread bao gồm: private private private private private private String clientName = null; DataInputStream is = null; PrintStream os = null; Socket clientSocket = null; final ClientThread[] threads; int maxClientsCount; - clientName: tên Client muốn đăng nhập vào Server - is: đầu vào Client - os: đẩu Client 22 - clientSocket: socket Client - maxClientsCount: số Client tối đa kết nối vào Server Hàm khởi tạo: public ClientThread(Socket clientSocket, ClientThread[] threads) { this.clientSocket = clientSocket; this.threads = threads; maxClientsCount = threads.length; } Hàm run() bao gồm: - Tạo input output stream is = new DataInputStream(clientSocket.getInputStream()); os = new PrintStream(clientSocket.getOutputStream()); String name = is.readUTF(); 23 - Bắt đầu chat while(true) { String line = is.readUTF(); if (line.startsWith("/quit")) { break; } /* If the message is private sent it to the given client */ if (line.startsWith("@")) { String[] words = line.split("\\s", 2); if (words.length > && words[1] != null) { words[1] = words[1].trim(); if (!words[1].isEmpty()) { synchronized (this) { for (int i=0;i

Ngày đăng: 28/09/2020, 22:06

Từ khóa liên quan

Mục lục

  • Chương 1 Tổng quan về lập trình mạng

    • 1.1 Tổng quan về mạng máy tính

      • 1.1.1 Mạng máy tính là gì?

      • 1.1.2 Mô hình mạng

        • 1.1.2.1 Mạng hình sao (Star Network)

        • 1.1.2.2 Mạng tuyến tính (Bus Network)

        • 1.1.2.3 Mạng hình vòng (Ring Network)

        • 1.1.3 Phân loại mạng

          • 1.1.3.1 LAN

          • 1.1.3.2 MAN

          • 1.1.3.3 WAN

          • 1.2 Mô hình mạng OSI

          • 1.3 Giao thức truyền thông

          • Chương 2 Xây dựng chương trình Client-Server với giao thức TCP

            • 2.1 Tổng quan về giao thức TCP

            • 2.2 Khái niệm về Socket

            • 2.3 Sử dụng TCP socket

            • 2.4 Các bước và thuật toán xây dựng chương trình Client-Server

              • 2.4.1 Các bước xây dựng chương trình server:

              • 2.4.2 Thuật toán xây dựng chương trình client-server tổng quát

              • Chương 3 Triển khai xây dựng chương trình

                • 3.1 Bài toán Chat Room

                • 3.2 Tổng quan về ngôn ngữ Java

                  • 3.2.1 Java là gì ?

                  • 3.2.2 Ứng dụng của Java

                  • 3.2.3 Những đặc điểm cơ bản của Java

                  • 3.3 Viết chương trình server hoạt động đa tuyến(multi threading)

                  • 3.4 Viết chương trình client

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

Tài liệu liên quan