Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 4 *** Bài 01 A : Tính tổng với giao thức TCP Console Viết chương trình bằng Console C++ với Client và Server , sử
Trang 1LẬP TRÌNH
MẠNG
Biên soạn đáp án : Tâm Gà
Nếu theo nghĩa bao quát thì Lập trình mạng đóng vai trò rất rộng rãi trên nhiều phương diện Nhưng riêng đối với môn học này, chúng ta sẽ tập trung đi sâu vào lập trình socket, cách viết các chương trình giao tiếp, tạo kết nối giữa client và server theo mô hình One Server - One Client và Concurrent Server (Nhiều Client kết nối cùng lúc) để trao đổi thông tin, remote control, cài trojan, telnet,
Trang 2LỜI GIỚI THIỆU
Xin chào các bạn, mình tên là Nguyễn Thanh Tâm và có biệt danh là Tâm
Gà Hôm nay, mình xin share cho các bạn cuốn tài liệu đáp án các bài tập trong môn Lập Trình Mạng nhé
Tài liệu này có nhiều phần khá hay, nhưng vẫn chưa đáp ứng được hết nhu cầu của các bạn đâu , mình tin chắc như thế Tuy nhiên , có tài liệu trong tay thì các bạn có thể an tâm để thực hiện nhiều bài tập khác, dựa theo bài giải mà Tâm Gà đã giải
Các bạn có thể xem online trên website và download source code về máy
để chạy Tâm Gà sẽ share full các đáp án cho các bạn xem nhé
Cuốn tài liệu sách này được thực hiện và đóng cuốn vào ngày 05/05/2013
và in ra 100 cuốn Tài liệu được thực hiện lúc Tâm Gà còn học Cao Đẳng Nghề TPHCM
Sinh viên : Nguyễn Thanh Tâm
Trang 3Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 2
+ Phần thực hành: Nắm vững về ngôn ngữ C, có khả năng xử lý chuỗi tốt Ngoài ra các bạn
cũng cần nắm rõ các câu lệnh thao tác ,và các bạn cũng cần nắm rõ được cú pháp và tham số cần thiết trong các hàm đó
+ Tâm lý vững vàng: Vì là một môn lập trình nên có thể sẽ mau làm nản lòng các bạn mất
căn bản, bên cạnh đó, những lỗi nhỏ nhặt trên socket như một cái dấu ngoặc đơn cũng có thể làm bạn điên đầu khi không tìm ra cách khắc phục Đừng vội nản chí, hãy chậm rãi tiếp cận, nắm vững kiến thức về TCP/UDP, IP packet và ôn lại lập trình C, tôi tin các bạn sẽ vượt qua được Điều quan trọng nhất: Tâm Gà làm được thì bạn cũng sẽ làm được và ngược lại
Trang 4Mục Lục
*** Bài 01 A : Tính tổng với giao thức TCP Console 30
*** Bài 01 B : Tính tổng với giao thức UDP Console 40
*** Bài 02 A : Tính USCLN và BSCNN với giao thức TCP Console 45
*** Bài 02 B : Tính USCLN và BSCNN với giao thức UDP Console 51
*** Bài 03 A : Hiện Ngày và Thời Gian với giao thức TCP Console 55
*** Bài 03 B : Hiện Ngày và Thời Gian với giao thức UDP Console 60
*** Bài 04 A : Tính Fibonaci với giao thức TCP Console 65
*** Bài 04 B : Tính Fibonaci với giao thức UDP Console 70
*** Bài 05 A : Tính Tổng,Max,Min của a,b,c với giao thức TCP Console 73
*** Bài 05 B : Tính Tổng,Max,Min của a,b,c với giao thức UDP Console 78
*** Bài 06 : Chương trình Chat với giao thức TCP Listener C# 83
*** Bài 07 : Truyền file bằng Windows Form 86
*** Bài 08 : Truyền file music,video bằng Windows Form 89
*** Bài 09 A : Chat Console C# giao thức TCP 93
*** Bài 09 B : Chat Console C# giao thức UDP 98
*** Bài 10 : Truyền file bằng Console C#, với giao thức TCP 101
*** Bài 11 A : Console C++, với giao thức TCP 105
*** Bài 11 B : Console C++, với giao thức UDP 112
*** Bài 12 : Gửi mail SMTP 118
*** Bài 13 : Tâm Gà Messenger Chat Form [ Public & Private ] 120
*** Bài 14 : Send Datatable với Socket 136
*** Bài 15 : Windows Form & Console C# , TCP 140
*** Bài 16 : Windows Console C# , TCP Ngày Tháng Năm 144
*** Bài 17 : Windows Forms và Console C# , TCP Chat Group 148
*** Bài 18: Dùng Console C# với giao thức TCP 152
*** Bài 19: Dùng Windows Form & Console C# với giao thức TCP 157
Trang 5Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 4
*** Bài 01 A : Tính tổng với giao thức TCP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
Trang 6*** Bài 01 B : Tính tổng với giao thức UDP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
Trang 7Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 6
*** Bài 02 A : Tính USCLN và BSCNN với giao thức TCP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
Trang 8*** Bài 02 B : Tính USCLN và BSCNN với giao thức UDP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
Trang 9Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 8
*** Bài 03 A : Hiện Ngày và Thời Gian với giao thức TCP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
cầu :
- Nhấp 1 để hiện ra màn hình ngày hiện tại
- Nhấp 2 để hiện ra màn hình giờ hiện tại
- Nhấp 3 để hiện ra màn hình ngày và giờ hiện tại
====> Đáp án mẫu như sau :
Trang 55
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab03a.html
Trang 10*** Bài 03 B : Hiện Ngày và Thời Gian với giao thức UDP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
cầu :
- Nhấp 1 để hiện ra màn hình ngày hiện tại
- Nhấp 2 để hiện ra màn hình giờ hiện tại
- Nhấp 3 để hiện ra màn hình ngày và giờ hiện tại
====> Đáp án mẫu như sau :
Trang 60
Trang 11Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 10
*** Bài 04 A : Tính Fibonaci với giao thức TCP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
cầu :
- Tính Fibonaci của một số nguyên n bất kỳ
====> Đáp án mẫu như sau :
Trang 65
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab04a.html
Trang 12*** Bài 04 B : Tính Fibonaci với giao thức UDP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
cầu :
- Tính Fibonaci của một số nguyên n bất kỳ
====> Đáp án mẫu như sau :
Trang 70
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab04b.html
Trang 13Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 12
*** Bài 05 A : Tính Tổng,Max,Min của a,b,c với giao thức TCP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
cầu :
- Tính Tổng và tìm Max,Min của ba số nguyên dương bất kỳ
====> Đáp án mẫu như sau :
Trang 73
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab05a.html
Trang 14*** Bài 05 B : Tính Tổng,Max,Min của a,b,c với giao thức UDP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu
cầu :
- Tính Tổng và tìm Max,Min của ba số nguyên dương bất kỳ
====> Đáp án mẫu như sau :
Trang 78
Trang 15Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 14
*** Bài 06 : Chương trình Chat với giao thức TCP Listener C#
Viết chương trình chat bằng Console C# với Client và Server Yêu cầu :
====> Đáp án mẫu như sau :
Trang 83
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab06.html
Trang 16*** Bài 07 : Truyền file bằng Windows Form
Viết chương trình gửi nhận file giữa Server và Client
====> Đáp án mẫu như sau :
Trang 86
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab07.html
Trang 17Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 16
*** Bài 08 : Truyền file music,video bằng Windows Form
Viết chương trình gửi nhận file nhạc giữa Server và Client
Sau đó , file tự động bật lên phát nhạc
====> Đáp án mẫu như sau :
Trang 89
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab08.html
Trang 18*** Bài 09 A : Chat Console C# giao thức TCP
Viết chương trình chat giữa Client và Server
====> Đáp án mẫu như sau :
Trang 93
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab09a.html
Trang 19Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 18
*** Bài 09 B : Chat Console C# giao thức UDP
Viết chương trình chat giữa Client và Server
====> Đáp án mẫu như sau :
Trang 98
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab09b.html
Trang 20*** Bài 10 : Truyền file bằng Console C#, với giao thức TCP
Viết chương trình truyền file data bằng Console của C# Với yêu cầu
- Bên Server hiện IP và Port của mình
- Bên Client phải nhấp vào đúng tên của Server và Port thì mới kết nối
được
- Truyền file mp3 thành công
====> Đáp án mẫu như sau :
Trang 21Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 20
*** Bài 11 A : Console C++, với giao thức TCP
Viết chương trình tính Thời Gian và USCLN và BSCNN
- Bên Server hiện IP và Port của mình
- Bên Client phải nhấp vào đúng tên của Server và Port thì mới kết nối được
- Truyền file mp3 thành công
====> Đáp án mẫu như sau :
Trang 105
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab11a.html
Trang 22*** Bài 11 B : Console C++, với giao thức UDP
Viết chương trình tính Thời Gian và USCLN và BSCNN
- Bên Server hiện IP và Port của mình
- Bên Client phải nhấp vào đúng tên của Server và Port thì mới kết nối
được
- Truyền file mp3 thành công
====> Đáp án mẫu như sau :
Trang 23Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 22
*** Bài 12 : Gửi mail SMTP
Viết chương trình gửi email với định dạng SMTP tới Google Mail và Yahoo
====> Đáp án mẫu như sau :
Trang 118
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab12.html
Trang 24*** Bài 13 : Tâm Gà Messenger Chat Form [ Public & Private ]
Viết chương trình chat trong mạng LAN, với yêu cầu :
- Có thể chat nhóm được ( từ 2 người trở lên )
- Có thể chat từng thành viên với nhau được
- Có mã hóa đoạn chat
- Hiện khung kết nối địa chỉ IP/Hostname và port
====> Đáp án mẫu như sau :
Trang 25Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 24
*** Bài 14 : Send Datatable với Socket
Viết chương trình gửi và nhận Database trong Socket
====> Đáp án mẫu như sau :
Trang 136
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab14.html
Trang 26*** Bài 15 : Windows Form & Console C# , TCP
Viết chương trình có phép toán Cộng, Trừ , Nhân , Chia và xuất ra ngày và giờ hiện tại
- Sử dụng Server bằng Console C#
- Sử dụng Client bằng Windows Form
====> Đáp án mẫu như sau :
Trang 140
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab15.html
Trang 27Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 26
*** Bài 16 : Windows Console C# , TCP Ngày Tháng Năm
Viết chương trình nhập và xuất , từ Client tới Server theo yêu cầu :
- Nhấn GetDate thì xuất ngày tháng năm hiện tại
- Nhấn GetTime thì xuất thời gian hiện tại
- Nhấn Quit thì thoát khỏi chương trình
====> Đáp án mẫu như sau :
Trang 144
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab16.html
Trang 28*** Bài 17 : Windows Forms và Console C# , TCP Chat Group
Viết chương trình chat theo giao thức TCP :
- Chat được Group
- Kết nối được nhiều Client
- Nhấn Quit thì thoát khỏi chương trình
====> Đáp án mẫu như sau :
Trang 148
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab17.html
Trang 29Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 28
*** Bài 18: Dùng Console C# với giao thức TCP
Viết chương trình chat theo giao thức TCP :
- Chat được Group
- Kết nối được nhiều Client
- Nhấn Quit thì thoát khỏi chương trình
====> Đáp án mẫu như sau :
Trang 152
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab18.html
Trang 30*** Bài 19: Dùng Windows Form & Console C# với giao thức TCP
Viết chương trình Máy Tính Bỏ Túi đơn giản:
====> Đáp án mẫu như sau :
Trang 157
Link : http://c10mt.blogspot.com/2012/05/tamga-ltm-lab19.html
Trang 31Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 30
*** Bài 01 A : Tính tổng với giao thức TCP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu cầu :
====> Đáp án mẫu như sau :
=====> Trước hết phải add thư viện winsock32.lib đối với C++ Console cho bài này Nhớ là add cho cả Server và cả Client luôn nhé Không phân biệt UDP hay TCP
Trang 33Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 32
Trang 35Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 34
=====> Và đây là code phần main của Server:
Trang 37Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 36
Trang 38=====> Và đây là code phần stdafx của Client :
Trang 39Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 38
=====> Và đây là code phần main của Client :
Trang 41Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 40
*** Bài 01 B : Tính tổng với giao thức UDP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu cầu :
Trang 42=====> Và đây là code phần stdafx của Server ( cách add winsock32.lib ở hình trên , như của TCP ):
Trang 43Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 42
=====> Và đây là code phần main của Server :
Trang 45Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 44
Trang 46*** Bài 02 A : Tính USCLN và BSCNN với giao thức TCP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu cầu :
- Tính Ước Số Chung Lớn Nhất
- Tính Bội Số Chung Nhỏ Nhất
====> Đáp án mẫu như sau :
Trang 47Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 46
=====> Trước hết phải add thư viện winsock32.lib đối với C++ Console cho bài này Nhớ là add cho cả Server và cả Client luôn nhé Không phân biệt UDP hay TCP
Trang 48=====> Và đây là code phần stdafx của Server :
Trang 49Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 48
=====> Và đây là code phần main của Server :
Trang 50=====> Và đây là code phần stdafx của Client :
Trang 51Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 50
Trang 52*** Bài 02 B : Tính USCLN và BSCNN với giao thức UDP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu cầu :
- Tính Ước Số Chung Lớn Nhất
- Tính Bội Số Chung Nhỏ Nhất
====> Đáp án mẫu như sau :
Trang 53Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 52
=====> Và đây là code phần stdafx của Server :
=====> Và đây là code phần main của Server :
Trang 55Tâm Gà - Lập Trình Mạng - www.c10mt.blogspot.com - tamgaalbum@yahoo.com 54
=====> Và đây là code phần main của Client :
Trang 56*** Bài 03 A : Hiện Ngày và Thời Gian với giao thức TCP Console
Viết chương trình bằng Console C++ với Client và Server , sử dụng Socket Yêu cầu :
- Nhấp 1 để hiện ra màn hình ngày hiện tại
- Nhấp 2 để hiện ra màn hình giờ hiện tại
- Nhấp 3 để hiện ra màn hình ngày và giờ hiện tại
====> Đáp án mẫu như sau :
=====> Trước hết phải add thư viện winsock32.lib đối với C++ Console cho bài này Nhớ là add cho cả Server và cả Client luôn nhé Không phân biệt UDP hay TCP