1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng chương trình ChatRoom sử dụng TCP Socket

29 316 4

Đ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 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG VIỆT - HÀN LẬP TRÌNH MẠNG XÂY DỰNG CHƯƠNG TRÌNH CHAT ROOM SỬ DỤNG TCP SOCKET Giảng viên hướng dẫn : ThS Nguyễn Anh Tuấn Sinh viên thực : Trần Cơng Rin Nguyễn Bình Minh Lớp : 18IT5 Đà Nẵng, tháng 12 năm 2020 NHẬN XÉT Ngày 30 tháng 12 năm 2020 Giảng viên MỤC LỤC LỜI CẢM ƠN Sau học mơn lập trình mạng giảng dạy nhiệt tình thầy Nguyễn Anh Tuấn em tiếp thu đầy kiến thức để áp dụng thực đề tài Nhờ phân công thầy, chúng em hoàn thành xây dựng đề tài “Xây dựng chương trình ChatRoom sử dụng TCP Socket” Và để hồn thành tốt đề tài này, chúng em xin cảm ơn tới quý thầy cô Trường Đại học Công nghệ thông tin truyền thông Việt – Hàn tạo điều kiện cho nhóm chúng em nghiên cứu hồn thành đề tài Tiếp đến, chúng em xin chân trọng cảm ơn giảng viên hướng dẫn nhóm chúng em thầy Nguyễn Anh Tuấn tận tình giúp đỡ, bảo hướng dẫn chúng em suốt trình thực đề trình lập trình mạng Vì thời gian lực cịn có hạn chế nên khơng thể tránh khỏi sai sót thực đề tài nghiên cứu Rất mong góp ý bổ sung thầy để đề tài chúng em ngày hoàn thiện Xin chân thành cảm ơn ! LỜI MỞ ĐẦU Ngày nay, ứng dụng công nghệ thông tin việc tin học hóa xem xem vấn đề quan tổ chức, cơng ty Nó đóng vai trị quan trọng, tạo bước đột phá mạnh mẽ Cùng với phát triển mạnh mẽ công nghệ thông tin mạng Internet, nhu cầu sử dụng máy tính người ngày cao Trao đổi thơng tin hay trị chuyện với máy tính hay tham gia vào phịng chat ví dụ điển hình cho hình thức Các room chat nơi mà tài khoản đăng ký đăng nhập vào hình thức đó, ví dụ dùng tài khoản mật khẩu, ví dụ ứng dụng mà hay sử dụng Zalo, Facebook Yahoo Hay đơn giản gia nhập vào máy chủ hay gọi Server) địa IP máy chủ Sau gia nhập vào máy chủ tài khoản (còn gọi Client) tham gia vào phòng chat Từ tài khoản thấy tài khoản khác chung phịng chat với trao đổi thơng tin với tài khoản phịng chat Mơ hình gọi chung “Mơ hình chat Client-Server” Mơ hình ứng dụng rộng rãi công ty, văn phịng, qn net Mơ hình giúp cho máy tính văn phịng hay qn net trao đổi thơng tin với cách kết nối với máy chủ gần khơng cần bước rườm rà đăng ký tài khoản mật phải làm xác nhận thời gian Trong báo cáo này, chúng em xin trình bày vấn đề liên quan phương thức kết nối hoạt động chương trình Chat Từ đó, vận dụng lý thuyết lập trình TCP Socket để phân tích trình hoạt động chương trình Chat Trên sở đó, đề giải pháp để xây dựng nên chương trình ChatRoom đảm bảo tính cần thiết từ việc ứng dụng lập trình TCP Socket Vậy nên em viết cáo cáo nhằm trình bày kết nghiên cứu em thời gian qua Đó đề tài: “Xây dựng chương trình Chat Room sử dụng TCP Socket” CHƯƠNG 1: GIỚI THIỆU 1.1 Lý thực đề tài Dưới phát triển bùng nổ thời đại Internet, nhu cầu sử dụng thiết bị công nghệ thông tin người mức cao, việc trao đổi thông tin qua ứng dụng Chat mạng phổ biến rộng rãi Một số ứng dụng Chat phổ biến Zalo, Messenger, Mocha, Đa phần người dung ứng dụng Chat với mục đích trao đổi thơng tin trị chuyện, làm quen bạn bè, bàn bạc công việc gián tiếp qua môi trường Internet, ứng dụng Chat đơn giản để kết nối người lại với Khi xây dựng chương trình Chat cần phải đảm bảo yêu cầu kết nối, liệu trình truyền phải đảm bảo toàn vẹn, an toàn bảo mật cao 1.2 Phương pháp triển khai đề tài Là ứng dụng mạng nên chương trình Chat hoạt động dựa mơ hình Client – Server Point to Point kết nối giao thức TCP UDP Trên sở đó, em xây dựng chương trình Chat hoạt động theo mơ hình Client – Server sử dụng giao thức kết nối TCP Ngơn ngữ lập trình sử dụng ngơn ngữ Java (JDK 15.0.1) Java ngơn ngữ sử dụng để viết Ứng dụng chạy hầu hết thiết bị CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Hiểu mơ hình Client-Server 2.1.1 Thế mơ hình Client-Server? Mơ hình Client-Server (hay cịn gọi mơ hình máy khách - máy chủ) mơ hình mà đây, máy khách máy tính, thiết bị điện tử máy in, điện thoại bàn, máy fax,… Ý tưởng mơ hình máy (đóng vai trị máy khách) gửi u cầu (request) để máy chủ (đóng vai trị người cung ứng dịch vụ), máy chủ xử lý yêu cầu trả kết cho máy khách Hình 2.1: Mơ hình Client-Server 2.1.2 Mơ hình Client-Server hoạt động nào? Chương trình server client nói chuyện với thơng điệp (messages) thông qua cổng truyền thông liên tác IPC (InterProcess Communication) Một số IPC phổ biến Pipe, Socket, RPC Để chương trình server chương trình client giao tiếp với chúng phải có chuẩn để nói chuyện, chuẩn gọi giao thức Nếu chương trình client muốn u cầu lấy thơng tin từ server phải tuân theo giao thức mà server đưa Các giao thức chuẩn (ở tầng mạng vận chuyển) sử dụng rộng rãi như: giao thức TCP/IP, giao thức SNA IBM, OSI, ISDN, X.25 giao thức LAN-to-LAN NetBIOS Quy trình hoạt động mơ hình lặp lặp lại q trình sau: • Client: Gửi liệu lên server, chờ nhận liệu từ server trả (Tạo request gửi đến Server chờ Server xử lý – Nhận kết trả về) • Server : Nhận thông tin, liệu gửi lên từ client, xử lý gửi liệu cho client kết nối Server chấp nhận tất yêu cầu hợp lệ từ nơi khác Internet, sau trả kết máy tính gửi yêu cầu (Lắng nghe request từ Client nhận request xử lý request – Response cho Client) Hình 2.2: Ngun tắc hoạt động mơ hình Client-Server 2.1.3 Mơ hình Client-Server có ưu, nhược điểm gì? • Ưu điểm: Mơ hình client server với mơ hình client server thứ dường nằm bàn người sử dụng, truy cập liệu từ xa (bao gồm cơng việc gửi nhận file, tìm kiếm thơng tin,…) với nhiều dịch vụ đa dạng mà mơ hình cũ khơng thể làm Mơ hình client/server cung cấp tảng lý tưởng cho phép tích hợp kỹ thuật đại mơ hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS)… • Nhược điểm: Một vấn đề nảy sinh mơ hình tính an tồn bảo mật thông tin mạng Do phải trao đổi liệu máy khu vực khác dễ dàng xảy tượng thông tin truyền mạng bị lộ 10 Websocket công cụ hỗ trợ việc kết nối qua lại internet client server Giúp diễn nhanh chóng hiệu thông qua việc sử dụng TCP socket Không sử dụng riêng cho ứng dụng web, Websocket áp dụng cho ứng dụng khác cần có trao đổi thơng tin Internet Ưu điểm: Websocket mang lại nhiều ưu điểm việc kết nối client server Cụ thể sau: • Tăng tốc độ truyền tải thơng tin chiều • Dễ phát xử lý trường hợp có lỗi xảy • Dễ dàng sử dụng, không cần cài đặt thêm phần mềm bổ sung khác • Khơng cần sử dụng nhiều phương pháp kết nối khác Nhược điểm: Một số nhược điểm Websocket mà bạn cần lưu ý sử dụng kể đến như: • Chưa hỗ trợ tất trình duyệt • Với dịch vụ có phạm vi u cầu, Websocket chưa hỗ trợ hồn tồn d Unix socket Hình 2.8: Unix Socket 15 Unix socket điểm giao tiếp hỗ trợ trao đổi ứng dụng khác máy tính Mọi hoạt động Unix socket diễn nhân hệ điều hành Nhờ vậy, tốc độ kết nối truyền tải ứng dụng nhanh, nhẹ hiệu Unix socket tránh bước kiểm tra routing Vì mà trình truyền tin đảm bảo dễ dàng Ưu điểm: Unix socket có nhiều ưu điểm vượt trội Nó hỗ trợ cho việc truyền tải nhanh hiệu Trong đó, tiêu biểu phải kể đến ưu điểm như: • • • • Tăng tốc độ truy cập MySQL lên đến 30-50% Giảm thời gian latency xuống, từ 60ms 5ms Tăng PostgreSQL lên 30% Tăng Redis lên 50% Nhược điểm: Unix socket tồn số nhược điểm sau: • Trong trường hợp ứng dụng nằm máy chủ khác nhau, kết nối Unix socket • Vấn đề phân quyền tệp tin Unix socket xảy ra, ảnh hưởng đến việc sử dụng thao tác 2.3 Mơ hình TCP/IP gì? TCP/ IP (Transmission Control Protocol/ Internet Protocol - Giao thức điều khiển truyền nhận/ Giao thức liên mạng), giao thức trao đổi thông tin sử dụng để truyền tải kết nối thiết bị mạng Internet TCP/IP phát triển để mạng tin cậy với khả phục hồi tự động 2.4 Sự phát triển hình thành mơ hình TCP/IP Ý tưởng hình thành mơ hình TCP/IP bắt nguồn từ Bộ giao thức liên mạng cơng trình DARPA vào năm 1970 Trải qua vơ số năm nghiên cứu phát triển kỹ sư Robert E Kahn Vinton Cerf hỗ trợ khơng nhóm nghiên cứu Đầu năm 1978, 16 giao thức TCP/ IP ổn định hóa với giao thức tiêu chuẩn dùng Internet mơ hình TCP/IP Version Vào năm 1975, thử nghiệm thơng nối mơ hình TCP/IP diễn thành công Cũng đây, thử nghiệm thơng nối mơ hình TCP/IP diễn nhiều đạt kết tốt Cũng điều này, hội thảo Internet Architecture Broad mở ra, với tham dự 250 đại biểu công ty thương mại, từ giao thức mơ hình TCP/IP phổ biến rộng rãi khắp giới 2.5 Cách thức hoạt động mơ hình TCP/IP Phân tích từ tên gọi, TCP/IP kết hợp giao thức Trong IP (Giao thức liên mạng) cho phép gói tin gửi đến đích định sẵn, cách thêm thông tin dẫn đường vào gói tin để gói tin đến đích định sẵn ban đầu Và giao thức TCP (Giao thức truyền vận) đóng vai trị kiểm tra đảm bảo an tồn cho gói tin qua trạm Trong trình này, giao thức TCP nhận thấy gói tin bị lỗi, tín hiệu truyền yêu cầu hệ thống gửi lại gói tin khác Q trình hoạt động làm rõ chức tầng mơ hình TCP/IP 2.6 Chức tầng mơ hình TCP/IP Một mơ hình TCP/IP tiêu chuẩn bao gồm lớp chồng lên nhau, tầng thấp Tầng vật lý (Physical) → Tầng mạng (Network) → Tầng giao vận (Transport) cuối Tầng ứng dụng (Application) 17 Tuy nhiên, số ý kiến lại cho mơ hình TCP/IP tầng, tức tầng đến giữ nguyên, tầng Datalink tách riêng tầng nằm so với tầng vật lý Hình 2.9: Mơ hình TCP/IP Tầng - Tầng Ứng dụng (Application) Đây lớp giao tiếp mơ hình Đúng với tên gọi, tầng Ứng dụng đảm nhận vai trò giao tiếp liệu máy khác thông qua dịch vụ mạng khác (duyệt web, chat, gửi email, số giao thức trao đổi liệu: SMTP, SSH, FTP, ) Dữ liệu đến định dạng theo kiểu Byte nối Byte, với thơng tin định tuyến giúp xác định đường gói tin 18 Hình 2.10: Tầng ứng dụng Tầng - Tầng Giao vận (Transport) Chức tầng xử lý vấn đề giao tiếp máy chủ mạng khác mạng kết nối với thông qua định tuyến Tại liệu phân đoạn, đoạn không kích thước phải nhỏ 64KB Cấu trúc đầy đủ Segment lúc Header chứa thơng tin điều khiển sau liệu Trong tầng bao gồm giao thức cốt lõi TCP UDP Trong đó, TCP đảm bảo chất lượng gói tin tiêu tốn thời gian lâu để kiểm tra đầy đủ thông tin từ thứ tự liệu việc kiểm soát vấn đề tắc nghẽn lưu lượng liệu Trái với điều đó, UDP cho thấy tốc độ truyền tải nhanh lại không đảm bảo chất lượng liệu gửi 19 Hình 2.11: Tầng giao vận Tầng - Tầng mạng (Internet) Gần giống tầng mạng mơ hình OSI Tại đây, định nghĩa giao thức chịu trách nhiệm truyền tải liệu cách logic mạng Các phân đoạn liệu đóng gói (Packets) với kích thước gói phù hợp với mạng chuyển mạch mà dùng để truyền liệu Lúc này, gói tin chèn thêm phần Header chứa thông tin tầng mạng tiếp tục chuyển đến tầng Các giao thức tầng IP, ICMP ARP 20 Hình 2.12: Tầng mạng Tầng - Tầng Vật lý (Physical) Là kết hợp tầng Vật lý tầng liên kết liệu mơ hình OSI Chịu trách nhiệm truyền liệu hai thiết bị mạng Tại đây, gói liệu đóng vào khung (gọi Frame) định tuyến đến đích định ban đầu 2.7 Lập trình TCP Socket Trong hệ thống mạng máy tính tồn mơ hình tham chiếu có kiến trúc phần tầng (OSI, TCP/IP…) nhằm hỗ trợ chức trao đôi thông tin ứng dụng nhiều máy tính khác Hình 2.13: Kiến trúc phần tầng (OSI, TCP/IP…) Dữ liệu bên gửi đóng gói (Encapsulation) từ tầng đến tầng cuối tầng vật lí (Physical Layer), sau nhờ tầng vật lí chuyển liệu đến tầng vật lí máy bên nhận, bên nhận tiến hành giải mã (decapsulation) gói kiện từ tầng lên tầng cùng, tầng ứng dụng (application layer) 21 Hình 2.14: Truyền gói tin Ở đây, Socket cửa giao tiếp tầng ứng dụng tầng giao vận (Transport layer) Nói cách khác, Socket giao diện ứng dụng tạo máy trạm, quản lí hệ điều hành qua ứng dụng gửi/nhận thơng điệp đến/từ ứng dụng khác Ở đó, Socket ràng buộc với mã số cổng (Port Number) để giúp tầng giao vận định danh ứng dụng nhận/gửi thông điệp Như hình 2.9, tầng giao vận có phương thức TCP (Ttransmission Control Protocol) UDP (User Datagram Protocol), socket có loại: Stream Socket sử dụng TCP truyền dòng bytes Datagram Socket dử dụng UDP truyền gói tin Với ngơn ngữ lập trình Java, chúng cung cấp loại khác Sockets: • Stream Socket (TCP) : Tạo luồng liệu hai chiều, đáng tin cậy, có trình tự không trùng lặp, liệu gửi/nhận có có liên kết Dùng với Socket Class java • Datagram Socket (UDP): Có thể nhận liệu khơng theo tình tự, trùng lặp Dùng • với DatagramSocket Class Multicast Socket : cho phép liệu gửi đến nhiều bên nhận lúc Dùng với DatagramSocket Class Socket hỗ trợ nhiều ngôn ngữ C, Java, Pearl, Python,… 22 2.3.1 Lập trình TCP Socket với Java Hình 2.15: Lập trình TCP Socket Đúng tính chất TCP cần có liên kết chiều trước server client trao đổi thơng điệp với Ban đầu, phía server tạo Socket ràng buộc với cổng (port number) để chờ nhận yêu cầu từ phía client Tiếp đến phía client yêu cầu server cách tạo Socket TCP máy kèm với địa IP port number tiến tình tương ứng máy server Khi client tạo Socket, client TCP tạo liên kết với server TCP chờ chấp nhận kết nối từ server TCP cung cấp dịch vụ truyền dịng tin cậy có thứ tự client server, máy chủ máy nhận có địa IP Thêm vào đó, thơng điệp truyền có xác nhận trả Sau ví dụ ứng dụng đơn giản lập trình TCP Socket với Java Miêu tả ứng dụng: • Client đọc dịng văn nhập từ bàn phím người dùng , gửi tới server qua Socket • Server đọc dịng văn gửi từ Socket • Server chuyển lại dịng văn kèm theo “Server accepted” tới phía client qua Socket • Client đọc dòng văn từ socket in dịng văn nhận từ server 23 Hình 2.16: Mơ tả lập trình TCP Socket Chúng ta thấy phía server client có luồng liệu, luồng Socket để gửi thông điệp luồng vào từ Socket để nhận thông điệp, với bên có hai biến input output (inFromServer, outToServer inFromClient, outToClient) 24 CHƯƠNG 3: TRIỂN KHAI CHƯƠNG TRÌNH CHATROOM SỬ DỤNG TCP SOCKET 3.1 u cầu • Client có giao diện đơn giản hay phức tạp tùy vào bạn • Chat Server server có khả quản lý nhiều clients chat room • Mỗi thơng điệp từ client gửi đến server, server phải có nhiệm vụ gửi đến tất client lại, tất client hiển thị thơng điệp lên hình 3.2 Mơi trường triển khai Ngơn ngữ lập trình: Java Mơi trường: Windows 10 3.3 Triển khai chương trình ChatRoom 3.3.1 Về phía Server Hình 3.1: Mở Server • Server quản lý thread client kết nối tới socket TCP 25 • Nhiệm vụ điều phối thơng tin từ client đến client cịn lại Server có khả quản lý nhiều clients chat room Nên có thêm Client vào phịng, Server xuất thơng báo “đã kết nối” Khi Client khỏi phịng Server thơng báo “đã thốt” Hình 3.2: Server quản lý Client 3.3.2 Về phía Client Nhiệm vụ chủ động kết nối tới server Gởi liệu tới server nhận liệu từ client khác server gởi tới Cũng sử dụng socket TCP Tiến trình nhận gởi liệu đc bất đồng hóa để đảm bảo cho gởi nhận đc liệu Mỗi thông điệp từ client gửi đến server, server phải có nhiệm vụ gửi đến tất client lại, tất client hiển thị thơng điệp lên hình 26 Hình 3.3 Minh hoạ ChatRoom 27 KẾT LUẬN • Chương trình làm cịn đơn giản, chưa đáp ứng nhu cầu thiết thực • Chúng em cố gắng hồn thiện tiếp tục phát triển chương trình • Báo cáo mơn học lập trình mạng lần này, em trình bày kiến thức TCP Socket ứng dụng Từ kết thực nghiệm cho thấy, chương trình cịn nhiều hạn chế Để chương trình sử dụng vào thực tế, cần giải nhược điểm mà chương trình cịn tồn tại, hồn thành tiếp chức chưa hoàn thiện, thực ý tưởng nhằm cao tốc độ, hiệu suất độ xác chương trình 28 TÀI LIỆU THAM KHẢO https://wiki.matbao.net/socket-la-gi-khai-niem-can-biet-ve-giao-thuctcp-ip-va-udp/ https://codelearn.io/sharing/lap-trinh-socket-co-voi-tcpip-ava http://sontx.blogspot.com/2016/06/chatroom-su-dung-tcp- socket.html 29

Ngày đăng: 15/05/2021, 20:12

Xem thêm:

TỪ KHÓA LIÊN QUAN

Mục lục

    1.1 Lý do thực hiện đề tài

    1.2 Phương pháp triển khai đề tài

    CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

    2.1 Hiểu mô hình Client-Server

    2.1.1 Thế nào là mô hình Client-Server?

    2.1.2 Mô hình Client-Server hoạt động như thế nào?

    2.1.3 Mô hình Client-Server có những ưu, nhược điểm gì?

    2.2 Tìm hiểu về Socket

    2.2.2 Tại sao người dùng lại cần đến Socket?

    2.2.3 Socket hoạt động như thế nào?

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w