Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
218,9 KB
Nội dung
BÁO CÁO BÀI TẬP LỚN MƠN LẬP TRÌNH MẠNG Tính tốn theo mơ hình Client-Server hình 2D 3D phổ biến Giảng viên hướng dẫn: ThS Nguyễn Duy Hiếu Nhóm thực hiện: Nhóm Lớp K55-ĐH CNTT Thành viên nhóm: Lường Văn Cường Quàng Văn Vinh Lê Hải Anh Lò Văn Khiêm LỜI CẢM ƠN Lời em xin bày tỏ lòng biết ơn chân thành tới thầy giáo Ths Nguyễn Duy Hiếu trực tiếp giảng dậy tận tình giúp đỡ, bảo em suốt thời gian qua Cảm ơn thầy ln tận tình giảng dậy, động viên, hướng dẫn, định hướng để em hồn thành tập lớp Dưới chúng em tìm hiểu nghiên cứu thời gian qua Do thời gian kiến thức hạn chế, nên báo cáo khơng tránh khỏi thiếu sót Vì em mong nhận bảo thầy để em hồn thành tốt Sơn la, ngày 17 tháng năm 2017 Sinh viên thực Nhóm Lường Văn Cường Quàng Văn Vinh Lê Hải Anh Lò Văn Khiêm MỤC LỤC DANH SÁCH HÌNH ẢNH PHẦN MỞ ĐẦU Lý làm tập lớn tính tốn hình 2D 3D qua mạng LAN Việc tính tốn với hình 2D 3D trở nên dễ dàng thuận tiện q trình học tập thay tính tốn tay.Tuy nhiên qua tìm hiểu chúng em thấy thay tính tốn giấy có cách nhah giúp ta tính hình đó…Chính mà chúng em chọn thiết kế ứng dụng “ Thiết kế tools tính tốn hình 2D 3D phổ biến” Mục đích việc làm tập lớn Củng cố bổ sung kiến thức học mơn lập trình mạng Qua rèn luyện kĩ làm việc nhóm làm quen với việc nghiên cứu khoa học Thiết kế tools tính tốn hình 2D 3D phổ biến hỗ trọ tính tốn học tập Đối tượng phạm vi việc làm tập lớn Xây dựng chương trình thiết kế tools tính tốn theo mơ hình Client – Sever hình 2D 3D phổ biến Bố cục Chương 1: Tổng quan lập trình socket java Chương 2: Giới thiệu chương trình ứng dụng CHƯƠNG I TỔNG QUAN VỀ LẬP TRÌNH SOCKET TRONG JAVA [1] 1.1 Giới thiệu socket 1.1.1 Lịch sử hình thành Khái niệm Socket xuất lần vào khoảng đầu năm 1980 tai trường đại hoc Berkekey Mỹ Đó chương trình thiết kế để giúp máy tính nối mạng khắp nơi trao đổi thơng tin với Lúc đầu sử dụng máy tính Unix có tên gọi Berkeley Socket Interface Tiếp với phát triển ứng dụng mạng, Socket hỗ trợ nhiều ngơn ngữ lập trình chạy nhiều tảng hệ điều hành khác Ví dụ Winsock dùng cho ứng dụng Microsoft, Socket++ dùng cho lập trình viên sử dụng Unix… 1.1.2 Định nghĩa Socket Có nhiều định nghĩa khác Socket tùy theo cách nhìn người sử dụng Một cách tổng quát định nghĩa: Một Socket điểm cuối kết nối hai chương trình chạy mạng Nhìn quan điểm người phát triển ứng dụng người ta định nghĩa Socket phương pháp để thiết lập kết nối truyền thông chương trình yêu cầu dịch vụ ( gán nhãn client) chương trình cung cấp dịch vụ (được gán nhãn server) mạng máy tính Đối với người lập trình, họ nhìn nhận Socket giao diện nằm tầng ứng dụng tầng khác mơ hình mạng OSI có nhiệm vụ thực việc giao tiếp chương trình ứng dụng với tầng bên mạng Hình 1.1 Mơ hình Socket Tuy nhiên, lập trình viên ln ln bị ngăn cản tạo Socket riêng cách thủ công dù bạn dùng java, serlet hay CGI, PHP…có thể bạn khơng mở cổng cách tường minh Thay vào lập trình viên sử dụng thư viện Socket hỗ trợ sẵn ngôn ngữ lập trình Như Socket tồn để kết nối ứng dụng người dùng, chi tiết Socket ẩn lớp sâu để người động chạm đến 1.1.3 Mô hình Client/Server sử dụng Socket chế độ hướng kết nối TCP • Giai đoạn 1: Server tạo Socket, gán số hiệu cổng lắng nghe yêu cầu kết nối Hình 1.2 Mơ hình iai đoạn Socket (): Server yêu cầu tạo Socket để sử dụng dịch vụ tầng vận chuyển Bind (): Server yêu cầu gán số hiệu cổng (Port) cho Socket Listen () : Server lắng nghe yêu cầu nối kết từ client cổng đượcgán • Giai đoạn 2: Client tạo Socket, yêu cầu thiết lập nối kết với Server Hình 1.3 Mơ hình giai đoạn Socket (): Client yêu cầu tạo Socket để sử dụng dịch vụ tầng vận chuyển, thông thường hệ thống tự động gán số hiệu cổng chưa sử dụng cho Socket Client Connect(): Client yêu cầu nối kết đến Server có địa IP Port xác định Accept () : Server chấp nhận nối kết Client, kênh giao tiếp ảo hình thành, client server trao đổi thông tin với thông qua kênh ảo • Giai đoạn 3: Trao đổi thơng tin Client server Hình 1.4 Mơ hình giai đoạn Sau chấp nhận yêu cầu nối kết, thông thường server thực lệnh read() nghe có thơng điệp u cầu ( Reaquest Message) từ client đến Server phân tích thực thi yêu cầu Kết gửi client lệnh write() Sau gửi yêu cầu lện write(), client chờ nhận thông điệp kết ( Reply Message) từ serer lệnh read() Trong giai đoạn này, việc trao đổi thông tin client server phải tuân thủ giao thức ứng dụng ( Dạng thức ý nghĩa thơng điệp, quy tắc bắt tay, đồng hóa,…) Thông thường client người gửi yêu cầu đến server trước Nếu phát triển ứng dụng theo protocol định nghĩa sẵn, phải tham khảo tuân thủ quy định giao thức Ngược lại, phát triển ứng dụng client/server riêng cho mình, cơng việc phải thực xây dựng protocol cho ứng dụng • Giai đoạn 4: Kết thúc phiên làm việc Hình 1.5 Mơ hình Giai đoạn Các câu lệnh read (), write () thực nhiều lần ( kí hiệu hình ellipse) Kênh ảo bị xóa server client đóng socket lệnh close() Như tồn tiến trình diễn sau: 10 gửi đến chuyển cho chương trình ứng dụng socket hai phía biết địa mạng địa cổng Ở bước thứ hai thấy chương trình ứng dụng phải lựa chọn giao thức mà định sử dụng để trao đổi liệu Tuỳ theo việc sử dụng giao thức (TCP hay UDP) mà cách thức xử lý trước yêu cầu clients khác 1.1.5 Socket hỗ trợ TCP Ở phía Server Khi ứng dụng server hoạt động tạo socket đăng ký với server cổng ứng dụng chờ đợi yêu cầu kết nối từ phía clients qua cổng Hình 1.7 Clients gửi yêu cầu đến server Hình 1.8 Server chấp nhận yêu cầu tạo socket để phục vụ clients Ở phía clients Nó biết địa máy server chạy vào cổng server chờ nghe yêu cầu Do muốn kết nối đến server, tạo socket chứa địa máy client cổng ứng dụng máy clients đồng thời clients cung cấp cho socket địa cổng server mà cần kết nối yêu cầu socket thực kết nối 13 Khi server nhận yêu cầu kết nối từ clients, chấp nhận server sinh socket gắn với cổng khác với cổng mà nghe yêu cầu Sở dĩ server làm cần cổng cũ để tiếp tục nghe yêu cầu từ phía clients cần kết nối với clients Sau chương trình ứng dụng phía server gửi thơng báo chấp nhận kết nối cho clients thông tin địa cổng socket mà dành cho clients Quay lại phía clients, kết nối chấp nhận nghĩa socket tạo thành cơng sử dụng socket để giao tiếp với server cách viết ghi tới socket theo cách giao tiếp với tài nguyên máy tính thơng thường 1.1.6 Socket hỗ trợ UDP Ở phía Server Khi ứng dụng server hoạt động tạo socket đăng ký với server cổng ứng dụng chờ đợi yêu cầu kết nối từ phía clients qua cổng Ở phía Clients Nó biết địa máy server chạy vào cổng server chờ nghe yêu cầu Do muốn giao tiếp với server, tạo socket chứa địa máy clients cổng ứng dụng máy clients đồng thời clients cung cấp cho socket địa cổng server mà cần kết nối Khi clients muốn gửi tin đế server chuyển liệu cho socket mình, socket chuyển thẳng gói tin mà client muốn gửi tới server dạng datagram có chứa địa máy server cổng mà server chờ nghe yêu cầu Như kết nối thực client với server server không cần tạo socket khác để kết nối với clients thay vào server dùng cổng ban đầu để trao đổi liệu 1.1.7 Socket Java Lớp Java.net.Socket 14 Lớp socket hỗ trợ phương thức cần thiết để xây dựng chương trình client sử dụng socket chế độ có nối kết Dưới số phương thức thường dùng để xây dựng clients public Socket(String HostName, int PortNumber) throws IOException Phương thức dùng để kết nối đến server có tên Hostname, cổng PortNumber Nếu nối kết thành công, kênh ảo hình thành clients server HostName: Địa IP tên logic theo dạng tên miền PortNumber: Có giá trị từ 65535 public InputStream getInputStream() Phương thức trả InputStream nối với Socket Chương trình clients dùng InputStream để nhận liệu từ server gửi public OutputStream getOutputStream() Phương thức trả OutputStream nối với socket Chương trình client dùng OutputStream để gửi liệu cho server public close() Phương thức đóng socket lại, giải phóng kênh ảo, xóa nối kết clients server 1.1.8 Một số lớp lập trình Java Socket Java hỗ trợ lập trình mạng thơng qua lớp gói java.net Một số lớp tiêu biểu cần dùng cho lập trình clients/server sử dụng socket làm phương tiện giao tiếp như: - InetAddress: Lớp quản lý địa Internet bao gồm địa IP tên máy tính - Socket: Hỗ trợ phương thức liên quan đến socket cho chươnng trình clients chế độ có kết nối - ServerSocket: Hỗ trợ phương thức liên quan đến socket cho chương trình server chế độ có kết nối 15 - DatagramSocket: Hỗ trợ phương thức liên quan đến socket chế độ không kết nối cho clients server - DatagramPacket: Lớp cài đặt gói tin dùng thư tín người dùng (Datagram Packet) giao tiếp clients server chế độ không kết nối 1.2 Giới thiệu số giao thức mạng 1.2.1 Giao thức TCP TCP(Transmission Control Protocol) giao thức hướng kết nối, cung cấp đường truyền liệu tin cậy hai máy tính Tính tin cậy thể việc đảm bảo liệu gửi đến đích theo thứ tự gửi Khi hai ứng dụng muốn giao tiếp với cách tin cậy, chúng tạo đường kết nối chúng gửi liệu thông qua đường Cách trao đổi liệu tương tự cách gọi điện thoại Hãy lấy ví dụ bạn nhấc điện thoại lên quay số người họ hàng này, lúc dó kết nối tạo điện thoại bạn người họ hàng, sau bạn gửi nhận liệu (dưới dạng âm thanh) cách nói nghe qua điện thoại bạn Tồn việc thực kết nối truyền liệu hai máy điện thoại thực công ty điện thoại thông qua trạm đường dây điện thoại, nhiệm vụ bạn quay số để cung cấp cho nhà cung cấp dịch vụ điện thoại biết số điện thoại bạn muốn liên lạc Giống vậy, việc truyền liệu qua mạng TCP đóng vai trị nhà cung cấp dịch vụ điện thoại ví dụ trên, làm nhiệm vụ tạo kết nối truyền liệu hai điểm giao tiếp để đảm bảo liệu không bị tới đích theo trật tự gửi Tính tin cậy đường truyền thể hai điểm sau: Mọi gói tin cần gửi đến đích Để làm điều lần phía gửi gửi xong gói tin chờ nhận xác nhận từ bên nhận nhận gói tin Nếu sau khoảng thời gian mà phía gửi khơng nhận thơng tin xác nhận phản hồi phát lại gói tin Việc phát lại tiến hành việc truyền tin thành công, 16 nhiên sau số lần phát lại max mà chưa thành cơng phía gửi suy truyền tin dừng việc phát tin Các gói tin trình ứng dụng nhận theo thứ tự chúng gửi Bởi gói tin dẫn mạng theo nhiều đường khác trước tới đích nên thứ tự tới đích chúng khơng giống chúng phát Do để đảm bảo xếp lại gói tin phía nhận theo thứ tự chúng gửi, giao thức TCP gắn vào gói tin thông tin cho biết thứ tự chúng khối tin chung phát nhờ bên nhận xếp lại gói tin theo thứ tự chúng Như thấy TCP cung cấp cho kênh truyền thông điểm- điểm phục vụ cho ứng dụng đòi hỏi giao tiếp tin cậy HTTP (HyperText Transfer Protocol), FTP (File Tranfer Protocol), Telnet… Các ứng dụng đòi hỏi kênh giao tiếp tin cậy thứ tự liệu gửi nhận yếu tố định đến thành công hay thất bại chúng Hãy lấy ví dụ HTTP sử dụng để đọc thơng tin từ địa URL, liệu phải nhận theo thứ tự mà chúng gửi khơng thứ mà bạn nhận trang HTML với nội dung lộn xộn file zip bị lỗi không giải nén… 1.2.2 Giao thức UDP UDP (User Datagram Protocol) giao thức không hướng kết nối, gửi gói liệu độc lập gọi datagram từ máy tính đến máy tính khác mà không đảm bảo việc liệu tới đích Ở phần trước thấy giao thức TCP hai chương trình muốn giao tiếp với qua mạng chúng tạo kết nối liên kết hai ứng dụng trao đổi liệu qua kết nối Trái lại giao thức UDP hai ứng dụng muốn giao tiếp với chúng không tạo kết nối mà đơn gửi gói tin cách độc lập từ máy tới máy khác.Các gói tin gọi datagram Việc gửi gói tin tương tự việc gửi thư qua đường bưu điện Các thư bạn gửi độc lập với nhau, thứ tự 17 thư khơng quan trọng khơng có đảm bảo thư đến đích Trong truyền thơng UDP datagram giống thư, chúng chứa thông tin cần gửi thơng tin địa đích mà chúng phải đến, nhiên chúng khác với thư điểm việc gửi thư, thư bạn khơng đến đích gửi trả lại nơi gửi nêu thư bạn có đề địa gửi cịn UDP khơng thơng báo cho phía gửi việc thư có tới đích hay khơng Vậy UDP giao thức không đảm bảo giao tiếp tin cậy người ta lại dùng chúng Điều giao thức TCP đảm bảo kết nối tin cậy ứng dụng chúng địi hỏi nhiều thời gian để truyền tin chúng phải kiểm tra header gói tin để đảm bảo thứ tự gói tin để phát lại gói tin khơng đến đích số trường hợp điều không cần thiết Dưới số trường hợp giao thức khơng hướng kết nối thích hợp so với giao thức hướng kết nối: Khi gói liệu cần truyền việc đến đích hay khơng khơng quan trọng, sử dụng giao thức UDP loại bỏ thủ tục tạo hủy kết nối So sánh chút thấy giao thức hướng kết nối TCP phải dùng đến bẩy gói tin để gửi gói tin cần phát nhận gói tin yêu cầu chấp nhận kết nối gói tin yêu cầu xác nhận việc hủy kết nối, giao thức khơng kết nối UDP sử dụng gói tin gói tin chứa liệu cần chuyển 18 CHƯƠNG II GIỚI THIỆU CHƯƠNG TRÌNH ỨNG DỤNG 2.1 Giới thiệu 2.2 Phân tích chương trình 2.2.1 Mơ đun phía server Hình 2.1 Mơ đun phía Server 19 2.2.2 Mơ đun phía client Hình 2.2 Mơ đun phía Client 20 2.2.3 Biểu đồ lớp Hình 2.3 Biểu đồ lớp Chương trình gồm lớp, chia thành nhóm phía Client gồm lớp Client, DoCoSo phía Server gồm Server, ServerThread,XuLyDuLieu Cơ chế hoạt động chương chình sau: • Chay Server Server tạo Socket lắng nghe u cầu kết nối • Chạy phía Client Khi nhấn vào nút bên phía Client tạo Socket, yêu cầu thiết lập nối kết với Server 21 • Server chấp nhận kết nối gọi đến class ServerThread để tạo đường kết nối với Client • ServerThread nhận liệu từ Client gửi sang gọi đến lớp XuLyDuLieu để tính kết • ServerThread gửi kết Client đóng kết nối 2.3 Giao diện chương trình 2.3.1 Giao diện phía server Khi có máy trạm client kết nối đến Hình 2.4 Server thông báo chấp nhận kết nối 22 2.3.2 Giao diện phía client Ứng dụng có chế dộ tính tốn hình sau: • Tính Tốn hình tam giác Chúng ta tính chu vi diện tích : Hình Tam Giác, Hình Chữ Nhật,Hình Vng Và tính thể tích diện tích tồn phần : Hình Trụ Trịn,hình Cầu Hình 2.5 chế độ tính hình tam giác Các phép tính chu vi diện tích nhập độ dài cạnh để tính kết Theo công thức: C=canh1+canh2+canh3; double p=C/2; S=sqrt(p*(p-canh1)*(p-canh2)*(p-canh3)); (Với p nửa chu vi tam giác) 23 • Tính tốn hình vng Hình 2.6 Chế độ tính hình vng Ở chế dộ cần nhập cạnh tính được: Cơng thức : S=canh1*canh1; C=canh1*4; • Tính tốn hình chữ nhật Hình 2.7 Chế độ hình chữ nhật 24 Trong chế dộ người dùng phải nhập hai cạnh: chiều dài chiều rộng để tính Cơng thức: S=canh1*canh2; C=(canh1+canh2)*2; • Tính hình cầu Hình 2.8 Chế độ tính hình cầu Chế độ cần nhập bán kính để thực phép tính thể tích diện tích tồn phần hình cầu Cơng thức: S=r*r*4*3.14; C=4/3*3.14*r*r*r; 25 ... TỔNG QUAN VỀ LẬP TRÌNH SOCKET TRONG JAVA [1] 1. 1 Giới thiệu socket 1. 1 .1 Lịch sử hình thành Khái niệm Socket xuất lần vào khoảng đầu năm 19 80 tai trường đại hoc Berkekey Mỹ Đó chương trình thiết... ảo, xóa nối kết clients server 1. 1.8 Một số lớp lập trình Java Socket Java hỗ trợ lập trình mạng thơng qua lớp gói java.net Một số lớp tiêu biểu cần dùng cho lập trình clients/server sử dụng socket... việc làm tập lớn Xây dựng chương trình thiết kế tools tính tốn theo mơ hình Client – Sever hình 2D 3D phổ biến Bố cục Chương 1: Tổng quan lập trình socket java Chương 2: Giới thiệu chương trình