Tiểu luận lập trình mạng Xây dựng chương trình tư vấn tuyển sinh sử dụng socket.io

20 781 5
Tiểu luận lập trình mạng  Xây dựng chương trình tư vấn tuyển sinh sử dụng socket.io

Đ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

ĐỀ TÀI CÓ DEMO: AI CẦN LIÊN HỆ MÌNH ĐỂ LẤY CODE NHÉ :01263751380 A TÂN 1.LÝ DO CHỌN ĐỀ TÀI Như chúng ta đã biết, ứng dụng công nghệ thông tin đã là một phần tất yếu trong thế giới hiện đại này. Do vậy, công nghệ thông tin hiện tại là một ngành khoa học rất phát triển và cực kỳ quan trọng vì nó được ứng dụng cho hầu hết các ngành quan trọng khác, có sự ảnh hưởng trực tiếp tới sự phát triển kinh tế của mỗi Quốc gia. Hai lĩnh vực phổ biến và quan trọng nhất đó là phần cứng và phần mềm. Trong các ứng dụng về phần mềm, ứng dụng để giúp người sử dụng có thể truy cập từ xa , truy cập đồng thời cùng lúc và dữ liệu được tập trung , thuận tiện cho việc quản lý cũng như việc truy cập của tất cả mọi người.Môn “Lập trình mạng” mà chúng ta được học cũng không nằm ngoài mục đích đó. Trong môn này, ứng dụng ClientServer là được xem là quan quan trọng trong việc xây dựng chương trình hoàn chỉnh. Đề tài: “Tìm hiểu và sử dụng kỹ thuật lập trình Socket xây dựng chương trình tư vấn và tuyển sinh cao đẳng, đại học theo mô hình Client – Server” cũng thực hiện theo mô hình ClientServer giúp cho người dùng có các thông tin cơ bản về kì thi. Mục tiêu của đề tài là giúp chúng em vận dụng các kiến thức đã được học ở môn lập trình mạng để xây dựng ứng dụng hoàn chỉnh.Tuy nhiên với kiến thức còn nhiều hạn chế nên trong quá trình xây dựng và hoàn thành đề tài môn học này, chúng em còn mắc phải nhiều thiếu sót, hạn chế do vậy mong được sự chỉ bảo của thầy cô, cùng các bạn để đề tài được hoàn thiện về nội dung và hình thức.Chúng em xin chân thành cảm ơn.

TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN - Tiểu luận: HỌC PHẦN LẬP TRÌNH MẠNG Tên đề tài: TÌM HIỂU VÀ SỬ DỤNG KỸ THUẬT LẬP TRÌNH SOCKET XÂY DỰNG CHƯƠNG TRÌNH TƯ VẤN VÀ TUYỂN SINH CAO ĐẲNG, ĐẠI HỌC THEO MÔ HÌNH CLIENT – SERVER Giảng viên: ThS Nguyễn Văn Khương Nhóm sinh viên thực hiện: - Nguyễn Văn Tân - Huỳnh Thanh Tùng - Hồ Văn Quyền - Hồ Thị Hạnh - Bùi Thị Xuân Hương Lớp: DT13CTT02 Quảng Nam, tháng 11 năm 2016 Phần MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI Như biết, ứng dụng công nghệ thông tin phần tất yếu giới đại Do vậy, công nghệ thông tin ngành khoa học phát triển quan trọng ứng dụng cho hầu hết ngành quan trọng khác, có ảnh hưởng trực tiếp tới phát triển kinh tế Quốc gia Hai lĩnh vực phổ biến quan trọng phần cứng phần mềm Trong ứng dụng phần mềm, ứng dụng để giúp người sử dụng truy cập từ xa , truy cập đồng thời lúc liệu tập trung , thuận tiện cho việc quản lý việc truy cập tất người Môn “Lập trình mạng” mà học không nằm mục đích Trong môn này, ứng dụng Client-Server xem quan quan trọng việc xây dựng chương trình hoàn chỉnh Đề tài: “Tìm hiểu sử dụng kỹ thuật lập trình Socket xây dựng chương trình tư vấn tuyển sinh cao đẳng, đại học theo mô hình Client – Server” thực theo mô hình Client-Server giúp cho người dùng có thông tin kì thi Mục tiêu đề tài giúp chúng em vận dụng kiến thức học môn lập trình mạng để xây dựng ứng dụng hoàn chỉnh Tuy nhiên với kiến thức nhiều hạn chế nên trình xây dựng hoàn thành đề tài môn học này, chúng em mắc phải nhiều thiếu sót, hạn chế mong bảo thầy cô, bạn để đề tài hoàn thiện nội dung hình thức Chúng em xin chân thành cảm ơn • • • MỤC TIÊU CỦA ĐỀ TÀI Tìm hiểu lập trình Socket Xây dựng chương trình tư vấn tuyển sinh cao đẳng, đại học Từ giúp thí sinh chọn trường, ngành nghề phù hợp với khả ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU Đối tượng nghiên cứu: Mô hình Client – Server • Phạm vi nghiên cứu: Nghiên cứu vấn đề xoay quanh việc lập trình Socket.Từ xây dựng xây dựng chương trình tư vấn tuyển sinh cao đẳng, đại học theo mô hình Client – Server 3 PHƯƠNG PHÁP NGHIÊN CỨU Thu thập thông tin, nghiên cứu tài liệu liên quan đến đề tài Tham khảo sách, giảng từ Internet Phần NỘI DUNG NGHIÊN CỨU Chương 1: CƠ SỞ LÝ THUYẾT 1.1 1.1.1 1.1.1.1 MÔ HÌNH CLIENT – SERVER Kiến trúc Client – Server Tổng quan Kiến trúc Client – Server sử dụng hệ thống phân tán bao gồm hai thành phần riêng biệt Server đóng vai trò phục vụ cung cấp chức Client đóng vai trò người tiêu thụ sử dụng chức Thông thường hai thành phần kết nối với qua mạng, với client bên chủ động tạo kết nối gửi yêu cầu đến Server, Server thụ động lắng nghe hồi đáp yêu cầu Mô hình Client – Server đơn giản gồm Server phục vụ cho nhiều Client đồng thời, gọi kiến trúc hai lớp Một ví dụ phổ biến cho ứng dụng Client – Server chương trình chat email thông dụng Hình Mô hình Client-Server 1.1.1.2 Các ưu điểm kiến trúc Client – Server • Quản lý tập trung: liệu lưu trữ tập trung Server thay nằm rải rác nhiều máy, giúp đơn giản hóa việc truy xuất cập nhật liệu • Dễ bảo trì: nhờ khả quản lý tập trung mà công việc bảo trì trở nên nhẹ nhàng phần lớn việc bảo trì cần thực Server Trong trường hợp hệ thống có nhiều Server với thiết bị dự phòng, trình bảo trì (như sửa chữa, thay Server) diễn hoàn toàn suốt với phía Client • Bảo mật liệu tập trung Server đồng nghĩa với việc kiểm soát dễ dàng Hình Mô hình hệ thống Email theo cấu trúc Client-Server 1.1.2 Ứng dụng theo mô hình Client – Server 1.1.2.1 Cách hoạt động Các tiến trình Clients Servers chạy trạm (host) trạm khác đối tượng logic tách biệt liên lạc với qua mạng để thực công việc Trong đó: • Server: quản lý nguồn tài nguyên, nhận request từ Clients để cung cấp phân phối tài nguyên cho Clients • Client: chương trình giao tiếp với người sử dụng, có nhiệm vụ gửi request cho Server thể việc tiếp nhận tài nguyên  Client: Khởi tạo liên lạc với Server trước Yêu cầu dịch vụ từ Server  Server: Chấp nhận yêu cầu tạo kết nối với Client Tính toán cung cấp dịch vụ theo yêu cầu từ Client Hình Cách hoạt động mô hình Client-Server 1.1.2.2 Đặc trưng mô hình ứng dụng Client – Server - Hoạt động theo kiểu giao thức bất đối xứng - Thể quan hệ chiều Client Server - Client bắt đầu phiên hội thoại cách yêu cầu dịch vụ - Server sẵn sang chờ yêu cầu từ Client Hình Giao thức hoạt động bất đối xứng tiến trình Client-Server - Chia sẻ tài nguyên: Một Server chia sẻ tài nguyên cho nhiều Client lúc - Server có khả điều phối truy nhập Client đến tài nguyên dùng chung 1.2 LẬP TRÌNH VỚI GIAO THỨC TCP, MULTI THREADING 1.2.1 Tổng quan Trong mô hình ứng dụng Client-Server, thông thường, chương trình chạy máy Client gửi requests tới chương trình (thường gọi chương trình Server) chạy máy Server Các gói request bao gồm dịch vụ mạng cung cấp tầng lớp giao vận (transport layer), phần kiến trúc phân tầng mạng, thường gọi TCP/IP (Transport Control Protocol/Internet Protocol) Tầng giao vận bao gồm hai loại giao thức TCP UDP(User Datagram Protocol) Hình Tầng vận chuyển Transport với TCP/IP TCP giao thức truyền hướng đối tượng thực luồng liệu tin cậy hai máy tính có thiết lập kết nối Ví dụ ứng dụng sử dụng dịch vụ HTTP, FTP Telnet 1.2.2 IP, cổng Port Socket Mọi máy tính môi trường Internet xác định địa IP 4byte mà viết dạng chấm 128.250.25.158, byte giá trị không dấu từ đến 255 Nhưng cách đặt tên cho địa không thân thiện chẳng nói lên điều nội dung thật khó để nhớ dãy byte Do đó, địa IP xác định tên www.google.com.vn dễ nhớ Hình Ánh xạ miền Thông thường, máy tính có địa IP Tuy nhiên, máy tính thường cần kết nối cung cấp loại kiểu dịch vụ để thông báo cho nhiều máychủ/máy tính thời điểm Ví dụ, máy tính làm việc, có nhiều phiên ftp, kết nối web, chương trình chat tất chương trình chạy thời điểm Vậy đển phân biệt dịch vụ này, ta có khái niệm cổng (port), điểm truy cập logic biểu diễn số nguyên 16-bit gắn cho tiến trình mạng Và tiến trình mạng gắn cổng Hình Biểu đồ gói tin gắn cổng định Một socket đầu cuối truyền thông hai chiều, liên kết hai chương trình chạy mạng Một socket gắn với số hiệu cổng (port), tầng giao vận nhận biết ứng dụng mà liệu chuyển đến Socket cho phép thực hoạt động sau: - Kết nối đến máy xa - Gửi liệu - Nhận liệu - Đóng kết nối - Gắn với cổng - Lắng nghe liệu đến - Chấp nhận kết nối từ máy xa cổng gắn Một (chương trình) server chạy máy tính cụ thể có socket gắn cổng cụ thể Chương trình server lắng nghe socket từ client để tạo yêu cầu kết nối Nếu thành công, chương trình server chấp nhận kết nối Sau chấp nhận kết nối, chương trình server có socket gắn cổng khác Nó cần socket để tiếp tục lắng nghe socket ban đầu cho yêu cầu kết nối phục vụ cho việc kết nối với client Hình Thiết lập đường dẫn cho kết nối hai chiều client server 1.2.3 Lập trình TCP Socket Có hai lớp gói java.net sử dụng để tạo chương trình server client: • ServerSocket • Socket Một chương trình server tạo socket cụ thể sử dụng để chờ lắng nghe kết nối từ yêu cầu client (server socket) Trong yêu cầu kết nối, chương trình tạo socket mà thông qua trao đổi liệu với client sử dụng luồng input output Người lập trình phải mở socket, thực hiên việc tạo biểu diễn luồng I/O, sau đóng socket Hình Chương trình client-server có kết nối socket  Các bước tạo chương trình server đơn giản: - Mở cổng: ServerSocket server = new ServerSocket(PORT); Chờ kết nối từ Client: Socket client = server.accept(); Tạo luồng I/O cho kết nối với Client DataInputStream dis = new DataInputStream(client.getInputStream()); DataOutputStream dos = new DataOutputStream(client.getOutputStream()); Biểu diễn việc kết nối với Client Nhận từ client: String line = dis.readLine(); Gửi tới client: dos.writeBytes(“Hello\n”); - Đóng socket client.close(); Các bước tạo chương trình client đơn giản: Tạo đối tượng socket Socket client = new Socket(server, port_id); Tạo luồng I/O cho kết nối với server dis = new DataInputStream(client.getInputStream()); dos = new DataOutputStream(client.getOutputStream()); Thực nhận truyền liệu qua luồng I/O Nhận liệu từ server: String line = dis.readLine(); Gửi liệu đến server: dos.writeBytes(“Hello\n”); Đóng socket hoàn thành client.close(); Hình 10 Các bước tạo ứng dựng TCP 1.2.4 Lập trình với chương trình server đa tuyến (ThreadServer) Để cho phép nhiều client kết nối đến server server phải chương trình đa tuyến Mối tuyến (thread) đảm nhận việc liên lạc với client Nghĩa có client kết nối đến, chương trình server sinh tuyến (thread) để điều khiển việc truyền thông với client Các bước tạo chương trình đa server đa tuyến - Tạo lớp extends đến lớp Thread ghi đè lên phương thức run(): class MyThread extends Thread { public void run() { // Nơi thực thi } } - Tạo đối tượng thread: MyThread thr1 = new MyThread(); Bắt đầu thực thi lớp Thread tạo: thr1.start(); - Một chương trình ví dụ minh họa việc tạo gọi đối tượng thread: extending the standard Thread class */ class MyThread extends Thread { public void run() { System.out.println(“ this thread is running ”); } } class ThreadEx1 { public static void main(String [] args ) { MyThread t = new MyThread(); t.start(); } } 1.3 LẬP TRÌNH VỚI PHP Bất thiết kế trang Web nhận thấy hạn chế ngôn ngữ HTML ngôn ngữ lập trình khác CSS Javacript Trong ngôn ngữ trì điểm cốt lõi để phát triển Web theo chức quan trọng xử lí văn giới hạn PHP (Hypertext Preprocessor) ngôn ngữ lập trình kết nối chặt chẽ với máy chủ (Windows Unix) Khi trang Web muốn dựng PHP phải đáp ứng tất trình 1xử lí thông tin trang Web đó, sau đưa kết ngôn ngữ HTML Về trình xữ lí diễn máy chủ nên trang Web viết PHP dễ nhận hệ điều hành Cũng hầu hết ngôn ngữ khác, PHP nối trực tiếp với HTML Khi tài liệu đưa phân tích trình xử lí thực điểm quan trọng sau đưa kết PHP ngôn ngữ lập trình có cấu trúc tính đa dạng Chính với điểm giống khuyến khích nhà thiết kế Web chuyển qua sử dụng PHP Với phiên PHP cung cấp số lượng sở liệu đồ sộ gồm MySQL, mSQL, OPBC Oracle Nó làm việc với hình ảnh file liệu, FTP, XML Host kỹ thuật ứng dụng khác PHP chạy Windows NT/2000/2003 Unix với hỗ trợ IIS Apache, chạy số Flatform khác PHP cung cấp tính mạnh mẽ để thực ứng dụng Web cách nhanh chóng Hơn bạn ngại tới vấn đề quyền bạn sắm máy vi tính cài lên phần mềm Apache, PHP tất đểu miễn phí Chương 2: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 2.1 PHÂN TÍCH YÊU CẦU Đề tài xây dựng chương trình “xây dựng chương trình tư vấn tuyển sinh cao đẳng, đại học theo mô hình Client – Server”: 2.1.1 Chương trình Client : - Cho phép server truy cập tới thực hiên chức điều khiển - Nhập tin nhắn từ bàn phím - Gửi tin tới server - Hiển thị tin từ server gửi đến 2.1.2 Chương trình Server: - Lắng nghe chấp nhận kết nối - Truyền nhận liệu với máy client - Cho phép kết nối nhiều Client lúc Server mở cổng kết nối với Client, nhận yêu cầu từ phía Client, thực việc Remote tới Client , lấy thông tin cần thiết gửi trả cho Server 2.2 PHÂN TÍCH CÁC CHỨC NĂNG Chương trình viết theo mô hình Client-Server.Ở Client Server thực chức khác để tạo nên chương trình hoàn chỉnh Client có chức năng: cho phép kết nối tới Server Server có chức năng: - Gởi thông điệp đến client - Truyền nhận liệu với máy client Mô hình tổng quát chương trình mô tả theo sơ đồ sau: Hình 11: Mô hình tổng quát chương trình Mô tả cách thức hoạt động: - Trao đổi liệu client tới server, từ server client gởi liệu xuyên suốt với Chương 3: XÂY DỰNG CHƯƠNG TRÌNH 3.1 XÂY DỰNG CÁC CHỨC NĂNG Mô tả chương trình Client: Client gửi liệu xuyên suốt cho Server Mô tả chương trình Server: 1: Tạo Thread cho Client kết nối 2: Thread kết nối để lấy liệu theo yêu cầu Client 3: ThreadClient nhận liệu từ ThreadServer 4: Gửi trả cho Client 5: Tiếp nhận liệu từ Client 3.2 KẾT QUẢ CHẠY CHƯƠNG TRÌNH Trang chủ: Trang đăng ký User để chat với nhân viên Giao diện admin chat: Giao diện khách hàng chat P hần KẾT LUẬN NHỮNG VẤN ĐỀ ĐẠT ĐƯỢC Trong khuôn khổ đề tài, chúng em làm rõ số vấn đề liên quan đến môn học Lập Trình Mạng, xây dựng thành công chương trình demo nhằm làm rõ vấn đề lí thuyết Đề tài đạt kết : Tìm hiểu cách xây dựng chương trình với lập trình Socket theo mô hình client – server, xây dựng chương trình tư vấn tuyển sinh cao đẳng, đại học NHỮNG VẤN ĐỀ CÒN HẠN CHẾ Chương trình chưa thực hoàn thiện để trở thành sản phẩm thương mại Bên cạnh việc quản lí nhóm, quản lí mã nguồn diễn thủ công chưa thực áp dụng quy trình công nghệ phần mềm Tuy chúng em xin kết thúc đề tài lập trình mạng với đề tài “Tìm hiểu sử dụng kỹ thuật lập trình Socket xây dựng chương trình tư vấn tuyển sinh cao đẳng, đại học theo mô hình Client – Server” Chúng em xin cảm ơn hướng dẫn giúp đỡ tận tình thầy “Nguyễn Văn Khương” suốt trình thực đề tài TÀI LIỆU THAM KHẢO [1] ThS Nguyễn Văn Khương, “Bài giảng Lập trình mạng”, năm 2015 [2] Tham khảo từ trang https://www.google.com MỤC LỤC (Tạo mục lục tự động) NHẬN XÉT CỦA GIẢNG VIÊN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… [...]... P hần 3 KẾT LUẬN 1 NHỮNG VẤN ĐỀ ĐẠT ĐƯỢC Trong khuôn khổ đề tài, chúng em đã cơ bản làm rõ một số vấn đề liên quan đến môn học Lập Trình Mạng, và đã xây dựng thành công một chương trình demo nhằm làm rõ các vấn đề lí thuyết Đề tài đã đạt được kết quả là : Tìm hiểu được cách xây dựng một chương trình với lập trình Socket theo mô hình client – server, xây dựng chương trình tư vấn và tuyển sinh cao đẳng,... 2 NHỮNG VẤN ĐỀ CÒN HẠN CHẾ Chương trình vẫn chưa thực sự hoàn thiện để có thể trở thành sản phẩm thương mại Bên cạnh đó việc quản lí nhóm, quản lí mã nguồn vẫn còn diễn ra rất thủ công chưa thực sự áp dụng đúng quy trình của công nghệ phần mềm Tuy vậy chúng em xin kết thúc đề tài lập trình mạng với đề tài “Tìm hiểu và sử dụng kỹ thuật lập trình Socket xây dựng chương trình tư vấn và tuyển sinh cao... để thực hiện ứng dụng Web một cách nhanh chóng Hơn nữa bạn không phải ngại tới vấn đề bản quyền khi bạn sắm một máy vi tính và cài lên thì những phần mềm Apache, PHP tất cả đểu miễn phí Chương 2: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 2.1 PHÂN TÍCH YÊU CẦU Đề tài xây dựng chương trình xây dựng chương trình tư vấn và tuyển sinh cao đẳng, đại học theo mô hình Client – Server”: 2.1.1 Chương trình Client : -... suốt với nhau Chương 3: XÂY DỰNG CHƯƠNG TRÌNH 3.1 XÂY DỰNG CÁC CHỨC NĂNG Mô tả chương trình Client: Client gửi dữ liệu xuyên suốt cho Server Mô tả chương trình Server: 1: Tạo Thread cho mỗi Client kết nối 2: Thread kết nối để lấy dữ liệu theo yêu cầu Client 3: ThreadClient nhận dữ liệu từ ThreadServer 4: Gửi trả về cho Client 5: Tiếp nhận dữ liệu từ Client 3.2 KẾT QUẢ CHẠY CHƯƠNG TRÌNH Trang chủ: Trang... một chương trình hoàn chỉnh Client có chức năng: cho phép kết nối tới Server Server có chức năng: - Gởi thông điệp đến mấy client - Truyền và nhận dữ liệu với máy client Mô hình tổng quát của chương trình được mô tả theo sơ đồ sau: Hình 11: Mô hình tổng quát chương trình Mô tả cách thức hoạt động: - Trao đổi dữ liệu giữa client tới server, từ đây server và client gởi dữ liệu xuyên suốt với nhau Chương. .. MyThread(); t.start(); } } 1.3 LẬP TRÌNH VỚI PHP Bất cứ ai khi thiết kế những trang Web đều nhận thấy rằng những hạn chế của ngôn ngữ HTML và ngôn ngữ lập trình khác như CSS và Javacript Trong khi các ngôn ngữ này vẫn duy trì những điểm cốt lõi để phát triển Web theo chức năng quan trọng là xử lí văn bản cũng được giới hạn PHP (Hypertext Preprocessor) là ngôn ngữ lập trình được kết nối chặt chẽ với... đưa ra kết quả PHP là một ngôn ngữ lập trình có cấu trúc và tính năng đa dạng Chính với những điểm giống nhau này đã khuyến khích những nhà thiết kế Web chuyển qua sử dụng PHP Với phiên bản này PHP cung cấp một số lượng cơ sở dữ liệu khá đồ sộ gồm cả MySQL, mSQL, OPBC và Oracle Nó có thể làm việc với các hình ảnh các file dữ liệu, FTP, XML và Host của các kỹ thuật ứng dụng khác PHP có thể chạy trên Windows... Unix) Khi một trang Web muốn dựng PHP thì phải đáp ứng được tất cả các quá trình 1xử lí thông tin trong trang Web đó, sau đó đưa ra kết quả như ngôn ngữ HTML Về quá trình xữ lí này diễn ra trên máy chủ nên trang Web được viết bằng PHP sẽ dễ nhận hơn bất cứ hệ điều hành nào Cũng như hầu hết các ngôn ngữ khác, PHP có thể nối trực tiếp với HTML Khi một tài liệu đưa ra phân tích quá trình xử lí cũng được thực... Hiển thị tin từ server gửi đến 2.1.2 Chương trình Server: - Lắng nghe và chấp nhận kết nối - Truyền và nhận dữ liệu với máy client - Cho phép kết nối nhiều Client trong cùng một lúc Server mở cổng kết nối với các Client, nhận yêu cầu từ phía Client, thực hiện việc Remote tới Client , lấy thông tin cần thiết và gửi trả cho Server 2.2 PHÂN TÍCH CÁC CHỨC NĂNG Chương trình được viết theo mô hình Client-Server.Ở...} } - Tạo một đối tư ng thread: MyThread thr1 = new MyThread(); Bắt đầu thực thi lớp Thread đã được tạo: thr1.start(); - Một chương trình ví dụ minh họa việc tạo và gọi một đối tư ng thread: extending the standard Thread class */ class MyThread extends Thread { public void run() { System.out.println(“

Ngày đăng: 01/12/2016, 18:53

Từ khóa liên quan

Mục lục

  • TRƯỜNG ĐẠI HỌC QUẢNG NAM

  • KHOA CÔNG NGHỆ THÔNG TIN

    • ----------

  • Phần 1. MỞ ĐẦU

    • Hình 1. Mô hình Client-Server.

    • Quản lý tập trung: dữ liệu được lưu trữ tập trung trên Server thay vì nằm rải rác trên nhiều máy, giúp đơn giản hóa việc truy xuất và cập nhật dữ liệu.

    • Dễ bảo trì: nhờ khả năng quản lý tập trung mà công việc bảo trì cũng trở nên nhẹ nhàng hơn vì phần lớn việc bảo trì chỉ cần thực hiện trên Server. Trong trường hợp hệ thống có nhiều Server với thiết bị dự phòng, quá trình bảo trì (như sửa chữa, thay thế Server) có thể diễn ra hoàn toàn trong suốt với phía Client.

    • Bảo mật dữ liệu tập trung trên Server đồng nghĩa với việc kiểm soát dễ dàng hơn.

    • Hình 2 . Mô hình hệ thống Email theo cấu trúc Client-Server.

    • Các tiến trình Clients và Servers có thể chạy cùng một trạm (host) hoặc các trạm khác nhau và là các đối tượng logic tách biệt và liên lạc với nhau qua mạng để cùng thực hiện một công việc. Trong đó:

    • Server: quản lý nguồn tài nguyên, nhận request từ Clients để cung cấp và phân phối tài nguyên cho Clients.

    • Client: là chương trình giao tiếp với người sử dụng, có nhiệm vụ gửi request cho Server và thể hiện việc tiếp nhận tài nguyên đó.

    • Client:

    • Khởi tạo liên lạc với Server trước.

    • Yêu cầu dịch vụ nào đó từ Server.

    • Server:

    • Chấp nhận yêu cầu và tạo kết nối với Client.

    • Tính toán rồi cung cấp dịch vụ theo yêu cầu từ Client

    • Hình 3. Cách hoạt động của mô hình Client-Server.

    • Hoạt động theo kiểu giao thức bất đối xứng

    • Thể hiện quan hệ một chiều giữa các Client và một Server.

    • Client bắt đầu phiên hội thoại bằng cách yêu cầu dịch vụ

    • Server sẵn sang chờ các yêu cầu từ Client.

    • Hình 4. Giao thức hoạt động bất đối xứng của các tiến trình Client-Server.

    • Chia sẻ tài nguyên:

    • Một Server có thể chia sẻ tài nguyên cho nhiều Client cùng một lúc.

    • Server cũng có khả năng điều phối truy nhập các Client đến các tài nguyên dùng chung.

    • Trong mô hình ứng dụng Client-Server, thông thường, các chương trình chạy trên máy Client sẽ gửi requests tới một chương trình (thường được gọi là chương trình Server) đang chạy trên máy Server. Các gói request này bao gồm các dịch vụ mạng được cung cấp bởi tầng lớp giao vận (transport layer), là một phần của kiến trúc phân tầng mạng, thường được gọi là TCP/IP (Transport Control Protocol/Internet Protocol). Tầng giao vận bao gồm hai loại giao thức là TCP và UDP(User Datagram Protocol)

    • Hình 5. Tầng vận chuyển Transport với TCP/IP.

    • TCP là một giao thức truyền hướng đối tượng được thực hiện bởi một luồng dữ liệu tin cậy giữa hai máy tính khi có thiết lập kết nối. Ví dụ những ứng dụng được sử dụng những dịch vụ như HTTP, FTP và Telnet.

    • Mọi máy tính trong môi trường Internet đều được xác định bởi địa chỉ IP 4-byte mà được viết dạng chấm như 128.250.25.158, trong đó mỗi byte là một giá trị không dấu từ 0 đến 255. Nhưng cách đặt tên cho địa chỉ như vậy thì không thân thiện bởi vì nó chẳng nói lên được bất cứ điều gì về nội dung và thật khó để nhớ những dãy byte đó. Do đó, địa chỉ IP được xác định bởi những cái tên như www.google.com.vn để cho dễ nhớ.

    • Hình 6. Ánh xạ miền

    • Thông thường, mỗi máy tính chỉ có một địa chỉ IP. Tuy nhiên, các máy tính thường cần kết nối và cung cấp hơn một loại kiểu dịch vụ hoặc để thông báo cho nhiều máychủ/máy tính cùng thời điểm. Ví dụ, trong một máy tính đang làm việc, có thể có nhiều phiên ftp, các kết nối web, và các chương trình chat và tất cả chương trình này cùng chạy một thời điểm. Vậy đển phân biệt các dịch vụ này, ta có khái niệm về cổng (port), là một điểm truy cập logic được biểu diễn bởi một số nguyên 16-bit gắn cho mỗi tiến trình mạng. Và mỗi tiến trình mạng đều được gắn một cổng duy nhất.

    • Hình 7. Biểu đồ các gói tin được gắn bởi một cổng nhất định.

    • Một socket là một đầu cuối của một sự truyền thông hai chiều, liên kết giữa hai chương trình chạy trên mạng.

    • Một socket được gắn với một số hiệu cổng (port), vì thế tầng giao vận có thể nhận biết ứng dụng mà dữ liệu được chuyển đến.

    • Socket cho phép thực hiện các hoạt động sau:

    • Kết nối đến máy ở xa

    • Gửi dữ liệu

    • Nhận dữ liệu

    • Đóng kết nối

    • Gắn với một cổng

    • Lắng nghe dữ liệu đến

    • Chấp nhận kết nối từ máy ở xa trên cổng đã được gắn.

    • Một (chương trình) server chạy trên một máy tính cụ thể và có một socket được gắn bởi một cổng cụ thể. Chương trình server sẽ lắng nghe socket từ một client để tạo một yêu cầu kết nối. Nếu thành công, chương trình server chấp nhận kết nối. Sau khi chấp nhận kết nối, chương trình server có một socket mới được gắn bởi một cổng khác. Nó cần một socket mới để có thể tiếp tục lắng nghe socket ban đầu cho yêu cầu kết nối trong khi phục vụ cho việc kết nối với client.

    • Hình 8. Thiết lập đường dẫn cho kết nối hai chiều giữa client và server.

    • Có hai lớp của gói java.net được sử dụng để tạo những chương trình server và client:

    • ServerSocket

    • Socket

    • Một chương trình server tạo một socket cụ thể được sử dụng để chờ lắng nghe kết nối từ yêu cầu của client (server socket). Trong một yêu cầu kết nối, chương trình tạo ra một socket mới mà thông qua đó nó sẽ trao đổi dữ liệu với client sử dụng các luồng input và output. Người lập trình phải mở một socket, thực hiên các việc tạo và biểu diễn các luồng I/O, và sau đó là đóng socket.

    • Hình 9. Chương trình client-server có kết nối socket.

    • Các bước tạo một chương trình server đơn giản:

    • Mở cổng:

    • ServerSocket server = new ServerSocket(PORT);

    • Chờ kết nối từ Client:

    • Socket client = server.accept();

    • Tạo các luồng I/O cho sự kết nối với Client

    • DataInputStream dis = new DataInputStream(client.getInputStream());

    • DataOutputStream dos = new DataOutputStream(client.getOutputStream());

    • Biểu diễn việc kết nối với Client

    • Nhận từ client: String line = dis.readLine();

    • Gửi tới client: dos.writeBytes(“Hellon”);

    • Đóng socket

    • client.close();

    • Các bước tạo một chương trình client đơn giản:

    • Tạo một đối tượng socket

    • Socket client = new Socket(server, port_id);

    • Tạo các luồng I/O cho sự kết nối với server

    • dis = new DataInputStream(client.getInputStream());

    • dos = new DataOutputStream(client.getOutputStream());

    • Thực hiện nhận và truyền dữ liệu qua luồng I/O

    • Nhận dữ liệu từ server: String line = dis.readLine();

    • Gửi dữ liệu đến server: dos.writeBytes(“Hellon”);

    • Đóng socket khi hoàn thành

    • client.close();

    • Hình 10. Các bước tạo một ứng dựng TCP.

    • Để cho phép nhiều client có thể kết nối đến server thì server phải là chương trình đa tuyến. Mối tuyến (thread) đảm nhận việc liên lạc với client. Nghĩa là khi có một client kết nối đến, chương trình server sinh ra một tuyến (thread) để điều khiển việc truyền thông với client.

    • Các bước tạo chương trình đa server đa tuyến.

    • Tạo một lớp extends đến lớp Thread và ghi đè lên phương thức run():

    • class MyThread extends Thread {

    • public void run() {

    • // Nơi thực thi

    • }

    • }

    • Tạo một đối tượng thread:

    • MyThread thr1 = new MyThread();

    • Bắt đầu thực thi lớp Thread đã được tạo:

    • thr1.start();

    • Một chương trình ví dụ minh họa việc tạo và gọi một đối tượng thread:

    • extending the standard Thread class. */

    • class MyThread extends Thread {

    • public void run() {

    • System.out.println(“ this thread is running ... ”);

    • }

    • }

    • class ThreadEx1 {

    • public static void main(String [] args ) {

    • MyThread t = new MyThread();

    • t.start();

    • }

    • }

    • 2.1. PHÂN TÍCH YÊU CẦU

    • Đề tài xây dựng chương trình “xây dựng chương trình tư vấn và tuyển sinh cao đẳng, đại học theo mô hình Client – Server”:

    • 2.1.1 Chương trình Client :

    • - Cho phép server truy cập tới và thực hiên các chức năng điều khiển.

    • - Nhập tin nhắn từ bàn phím.

    • - Gửi tin tới server.

    • - Hiển thị tin từ server gửi đến.

    • 2.1.2 Chương trình Server:

    • - Lắng nghe và chấp nhận kết nối.

    • - Truyền và nhận dữ liệu với máy client.

    • - Cho phép kết nối nhiều Client trong cùng một lúc.

    • Server mở cổng kết nối với các Client, nhận yêu cầu từ phía Client, thực hiện việc Remote tới Client , lấy thông tin cần thiết và gửi trả cho Server.

    • 2.2. PHÂN TÍCH CÁC CHỨC NĂNG

    • Chương trình được viết theo mô hình Client-Server.Ở Client và Server sẽ thực hiện các chức năng khác nhau để cùng tạo nên một chương trình hoàn chỉnh.

    • Client có chức năng: cho phép kết nối tới Server.

    • Server có chức năng:

    • - Gởi thông điệp đến mấy client.

    • - Truyền và nhận dữ liệu với máy client.

    • Mô hình tổng quát của chương trình được mô tả theo sơ đồ sau:

    • Hình 11: Mô hình tổng quát chương trình

    • Mô tả cách thức hoạt động:

    • Trao đổi dữ liệu giữa client tới server, từ đây server và client gởi dữ liệu xuyên suốt với nhau.

    • Mô tả chương trình Client:

    • Client gửi dữ liệu xuyên suốt cho Server.

    • Mô tả chương trình Server:

    • 1: Tạo Thread cho mỗi Client kết nối.

    • 2: Thread kết nối để lấy dữ liệu theo yêu cầu Client.

    • 3: ThreadClient nhận dữ liệu từ ThreadServer.

    • 4: Gửi trả về cho Client.

    • 5: Tiếp nhận dữ liệu từ Client.

  • Phần 3. KẾT LUẬN

    • Trong khuôn khổ đề tài, chúng em đã cơ bản làm rõ một số vấn đề liên quan đến môn học Lập Trình Mạng, và đã xây dựng thành công một chương trình demo nhằm làm rõ các vấn đề lí thuyết. Đề tài đã đạt được kết quả là :

    • Tìm hiểu được cách xây dựng một chương trình với lập trình Socket theo mô hình client – server, xây dựng chương trình tư vấn và tuyển sinh cao đẳng, đại học

    • Chương trình vẫn chưa thực sự hoàn thiện để có thể trở thành sản phẩm thương mại. Bên cạnh đó việc quản lí nhóm, quản lí mã nguồn vẫn còn diễn ra rất thủ công chưa thực sự áp dụng đúng quy trình của công nghệ phần mềm. Tuy vậy chúng em xin kết thúc đề tài lập trình mạng với đề tài “Tìm hiểu và sử dụng kỹ thuật lập trình Socket xây dựng chương trình tư vấn và tuyển sinh cao đẳng, đại học theo mô hình Client – Server” tại đây. Chúng em cũng xin được cảm ơn sự hướng dẫn và giúp đỡ tận tình của thầy “Nguyễn Văn Khương” trong suốt quá trình thực hiện đề tài.

  • MỤC LỤC

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

  • Đang cập nhật ...

Tài liệu liên quan