MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN CƠ SỞ 4 ĐỀ 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 hiện L[.]
ĐẠ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 - Tầng phiên (Session layer): Tầng phiên kiểm soát (phiên) hội thoại máy tính Tầng thiết lập, quản lý kết thúc kết nối trình ứng dụng địa phương trình ứng dụng xa - Tầng trình diễn (Presentation layer): Lớp trình diễn hoạt động tầng liệu mạng Lớp máy tính truyền liệu làm nhiệm vụ dịch liệu gửi từ tầng Application sang dạng Fomat chung Và máy tính nhận, lớp lại chuyển từ Fomat chung sang định dạng tầng Application - Tầng ứng dụng (Application layer): Tầng ứng dụng tầng gần với người sử dụng Nó cung cấp phương tiện cho người dùng truy nhập thông tin liệu mạng thơng qua chương trình ứng dụng Tầng giao diện để người dùng tương tác với chương trình ứng 1.3 Giao thức truyền thơng - Giao thức truyền thông (Communication protocol) hay Giao thức liên mạng, Giao thức truyền thông, Giao thức trao đổi thông tin công nghệ thông tin gọi tắt giao thức (protocol) - tập hợp quy tắc chuẩn dành cho việc biểu diễn liệu, phát tín hiệu, chứng thực phát lỗi liệu Đó việc cần thiết để gửi thông tin qua kênh truyền thơng, nhờ mà thiết bị kết nối trao đổi thơng tin với - Các giao thức dùng cho việc truyền thông tin tín hiệu số mạng máy tính có nhiều tính để đảm bảo việc trao đổi liệu đáng tin cậy tqua kênh truyền thông khơng hồn hảo - Có mơ hình giao thức mang tính lý thuyết, ngành cơng nghệ thơng tin tơn trọng cách tương đối mơ hình OSI Cũng có giao thức triển khai ứng dụng rộng rãi TCP, IP, HTTP, FTP, SMTP, POP3 - Có nhiều giao thức sử dụng để giao tiếp truyền đạt thông tin Internet, số giao thức tiêu biểu: 11 o TCP (Transmission Control Protocol): thiết lập kết nối máy tính để truyền liệu Nó chia nhỏ liệu thành gói (packet) đảm bảo việc truyền liệu thành công o IP (Internet Protocol): định tuyến (route) gói liệu chúng truyền qua Internet, đảm bảo liệu đến nơi cần nhận o HTTP (HyperText Transfer Protocol): cho phép trao đổi thông tin (chủ yếu dạng siêu văn bản) qua Internet o FTP (File Transfer Protocol): cho phép trao đổi tập tin qua Internet o SMTP (Simple Mail Transfer Protocol): cho phép gởi thông điệp thư điện tử (e-mail) qua Internet o POP3 (Post Office Protocol, phiên 3): cho phép nhận thông điệp thư điện tử qua Internet o WAP (Wireless Application Protocol): cho phép trao đổi thông tin thiết bị không dây, điện thoại di động 12 Chương Xây dựng chương trình Client-Server với giao thức TCP 2.1 Tổng quan giao thức TCP Giao thức TCP giao thức truyền thơng có kết nối (connection oriented) tin cậy (reliable) Truyền thơng có kết nối có nghĩa trước truyền liệu, giao thức TCP gửi giao thức TCP nhận phải thiết lập kênh truyền trước gửi/nhận liệu và, suốt trình trao đổi đữ liệu hai giao thức gửi/nhận phải trì kênh truyền thiết lập Quá trình thiết lập kênh truyền thực cụ thể trình gọi trình bắt tay ba bước (three-way handshake) sau: Trước hết giao thức TCP phía máy gửi phải yêu cầu thiết lập kênh truyền cách gửi phân đoạn (segment) gọi SYN đến giao thức TCP phía máy nhận Giao thức TCP phía máy nhận trả lại phân đoạn (segment) để xác nhận nhận Hình 1.quá trình bắt tay bước thành cơng Giao thức TCP phía máy gửi tiếp tục gửi phân đoạn ACK để xác nhận sau q trình gửi liệu 13 Truyền thơng tin cậy có nghĩa nút gửi biết gói tin gửi đến đích hay không Nếu không đến được, nút gửi phải gửi lại gói tin Nếu gói tin gửi thành cơng, nút gửi gửi gói tin Cụ thể q trình thực cách gói tin đánh số thứ tự Mỗi nhận gói tin, nút nhận phải gửi phản hồi xác nhận (acknowledgment) cho nút gửi để thông báo nhận thành cơng gói tin Giao thức TCP sử dụng truyền thông dạng luồng liệu hay dãy bytes (byte-stream) liên tục kênh truyền, mô tả hình vẽ bên dưới: Hình 2.Minh họa việc truyền liệu giao thức TCP Mỗi gói tin TCP (hay cịn gọi segment) gồm số thơng tin điều khiển phần đầu mô tả bảng đây: Thông tin điều khiển Mô tả Số cổng nguồn(Source Port) Số cổng đích(Destination Port) Số hiệu gói tin(Sequence Number) Số hiệu xác nhận(Acknowledgment Số hiệu cổng TCP tiến trình gửi Số hiệu cổng TCP tiến trình nhận Số thứ tự byte gói tin TCP Số thứ tự byte gói tin Number) TCP mà giao thức TCP gửi chờ nhận từ Kích thước đệm(Window) phía nhận Kích thước đệm TCP phía máy gửi dùng để chứa gói tin TCP Thơng tin kiểm tra lỗi(TCP Checksum) nhận Dùng để kiểm tra tính tồn vẹn phần đầu liệu gói tin TCP 14 Để kết thúc kết nối, giao thức TCP sử dụng chế bắt tay bước.Điều đảm bảo hai giao thức TCP (gửi nhận) kết thúc truyền liệu tất liệu gửi nhận thành công 2.2 Khái niệm Socket Để xây dựng chương trình theo mơ hình client-server, cho phép truyền nhận liệu qua mạng, người lập trình cần viết chương trình tầng ứng dụng tìm cách giao tiếp với hai giao thức (dịch vụ) tầng Vận chuyền TCP UDP Để làm việc này, hệ điều hành cung cấp phương tiện cho phép ứng dụng người dùng giao tiếp với giao thức TCP UDP cách dễ dàng Phương tiện gọi Socket, biêu diễn hình vẽ bên dưới: Tải FULL (32 trang): https://bit.ly/3pSzOcC Dự phòng: fb.com/TaiHo123doc.net Hình 3.Mơ tả Socket mơ hình TCP/IP Socket xem điểm giao tiếp ứng dụng với mạng, chương trình client/server thực hai thao tác sau: Để truyền liệu, chương trình cần gửi liệu vào socket Để nhận liệu, chương trình cần đọc liệu từ socket Có hai loại socket: socket nối với giao thức TCP gọi TCP socket, tương tự socket nối với giao thức UDP gọi UDP socket Một TCP socket xem điểm cuối kênh kết nối hai chiều lien kết hai chương trình mạng 15 Hình 4.Socket mơ hình ứng dụng client-server Có thể nói kênh kết nối hai chương trình thiết lập nhờ vào hai socket gắn hai chương trình Như hình vẽ trên, mơi chương trình client server đêu có socket gắn vào để truyền nhận liệu 2.3 Sử dụng TCP socket Như trình bày mục trên, việc xây dựng chương trình client-server sử dụng giao thức TCP tầng Vận chuyên thực thông qua TCP socket Do vậy, người lập trình cần viết mã lệnh đề đọc ghi liệu chương trình TCP socket, sau TCP socket có nhiệm vụ liên lạc gửi, nhận liệu với TCP socket phía đầu lại Tải FULL (32 trang): https://bit.ly/3pSzOcC Dự phịng: fb.com/TaiHo123doc.net Do đó, hoạt động TCP socket bao gồm sau: TCP Socket phía server: - Lắng nghe yêu cầu nối kết từ socket phía client - Chấp nhận kết nối từ socket phía client - Gửi liệu nhận liệu - Đóng kết nối TCP Socket phía client: - Yêu cầu kết nối với socket phía server - Gửi liệu - Nhận liệu - Đóng kết nối 16 Để TCP socket phía client liên lạc với TCP socket phía server TCP socket phía server phải gắn với cơng (port) Sau TCP socket phía server gắn cơng, chờ lắng nghe yêu cầu tạo kênh kết nối từ TCP socket phía client gửi đến 2.4 Các bước thuật tố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: Chương trình server xây dựng gồm bước sau: Tạo TCP socket Gắn TCP vào số hiệu cổng Chở lắng nghe yêu cầu kết nối từ chương trình client Nếu có yêu cầu kết nối, chấp nhận kết nối từ chương trình client Sau kênh kết nối thiết lập, trao đổi liệu với chương trình client Đóng kết nối Hình Thuật tốn xây dựng chương trình Server 17 8090340 ...ĐẠ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... truyền thông - Giao thức truyền thông (Communication protocol) hay Giao thức liên mạng, Giao thức truyền thông, Giao thức trao đổi thông tin công nghệ thông tin gọi tắt giao thức (protocol) - tập... giao thức TCP 2.1 Tổng quan giao thức TCP Giao thức TCP giao thức truyền thông có kết nối (connection oriented) tin cậy (reliable) Truyền thơng có kết nối có nghĩa trước truyền liệu, giao thức TCP