Bài giảng Lập trình mạng nâng cao - Nguyễn Vũ
lượt xem 10
download
Mời các bạn cùng tham khảo "Bài giảng Lập trình mạng nâng cao - Nguyễn Vũ" để nắm bắt được những nội dung về Socket không đồng bộ (Asynchronous Socket), sử dụng đa luồng (Thread) trong ứng dụng mạng, kỹ thuật IP Multicasting, giao thức ICMP, giao thức SMTP, POP3, giao thức HTTP và giao thức FTP.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình mạng nâng cao - Nguyễn Vũ
- HỌC PHẦN LẬP TRÌNH MẠNG NÂNG CAO Nguyễn Vũ – IT Faculty, Viet Han Friendship 1
- Lập trình mạng nâng cao Thời lượng: 60 tiết (8 tiết / 1 tuần) Hình thức kiểm tra đánh giá: Điểm rèn luyện: điểm danh + kiểm tra + Bài tập Báo cáo đồ án Nguyễn Vũ – IT Faculty, Viet Han Friendship 2
- Mục tiêu của môn học Nắm được cách thức trao đổi thông điệp giữa các máy tính trong mạng Hiểu được cách thức lập trình trên tầng ứng dụng sử dụng ngôn ngữ C# Vận dụng các kiến thức về mạng máy tính để viết chương trình trao đổi thông điệp trên tầng mạng và tầng ứng dụng Nguyễn Vũ – IT Faculty, Viet Han Friendship 3
- Tài liệu tham khảo [1] Unix Network Programming, W. Richard [2] Network Programming in .NET, Fiach Rei [3] Sybex Csharp network programming, Richard Blum Nguyễn Vũ – IT Faculty, Viet Han Friendship 4
- Nội dung Socket không đồng bộ (Asynchronous Socket) Sử dụng đa luồng (Thread) trong ứng dụng mạng Kỹ thuật IP Multicasting Giao thức ICMP Giao thức SMTP, POP3 Giao thức HTTP Giao thức FTP Nguyễn Vũ – IT Faculty, Viet Han Friendship 5
- Các kiến thức cũ Lâp trình socket v ̣ ới giao thứ c TCP Sử dụng kỹ thuật lập trình thông thường Sử dung luô ̣ ̣ ̀ng nhâp xuâ ́t(networkStream) Sử dung luô ̣ ̀ng nhâp xuâ ̣ ́t hướng ký tự StreamReader, StreamWriter Lập trình socket với giao thức UDP Lâp tri ̣ ̀ nh vớ i cá c lớ p hỗ trợ được xây dựng từ lớ p Socket TCPCLient, TCPListener UDP Client Nguyễn Vũ – IT Faculty, Viet Han Friendship 6
- Sử dụng luồng nhập xuất (networkstream) Xây dựng chương trình Server gồm các thao tác: Khai báo IPEndPoint Khai báo socket Gắn socket với số hiêu công (bind) ̣ ̉ Lắng nghe kết nối (server) Chấp nhân kệ ́t nối Tao đô ̣ ́i tượng NetworkStream bằng lênh: ̣ NetworkStream ns= new NetworkStream(); ̉ Gửi nhân d ̣ ữ liêu thông qua NetworkStream bă ̣ ̀ng lênh: ̣ Nhận dữ liệu: int receive=ns.Read(data,0,data.Length); Gửi dữ liệu: ns.Write(data,0, data.Length); Nguyễn Vũ – IT Faculty, Viet Han Friendship 7
- Sử dụng luồng nhập xuất (networkstream) Xây dựng chương trình Client gồm các thao tác: Khai báo IPEndPoint Khai báo socket Kết nối đến Server Tao đô ̣ ́i tượng NetworkStream bằng lênh: ̣ NetworkStream ns= new NetworkStream(); ̉ Gửi nhân d ̣ ữ liêu thông qua NetworkStream bă ̣ ̀ng lênh: ̣ Nhận dữ liệu: int receive=ns.Read(data,0,data.Length); Gửi dữ liệu: ns.Write(data,0, data.Length); Nguyễn Vũ – IT Faculty, Viet Han Friendship 8
- Sử dụng luồng nhập xuất hướng ký tự Thông qua NetworkStream ta có thể nối thêm các luồng nhập xuất theo hướng ký tự như: StreamReader và StreamWriter. Không cần phải mã hóa và giải mã dữ liệu khi gửi và nhận. Các thao tác tương tự như trên, chỉ khác ở chỗ nối thêm luồng nhập xuất StreamReader và StreamWriter như sau: NetworkStream ns = new NetworkStream(server); StreamReader sr = new StreamReader(ns); StreamWriter sw = new StreamWriter(ns); Tiến hành gửi và nhận dữ liệu (không sử dụng mãng byte): ̣ sw.WriteLine(input); Gửi dữ liêu: sw.Flush(); Nhân d ̣ string kq=sr.ReadLine(); ̣ ữ liêu: Nguyễn Vũ – IT Faculty, Viet Han Friendship 9
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (1) Để lập trình với giao thức TCP, MS.Net cung cấp hai lớp có tên là TCPCLient và TCPListener. Lớp TCPClient Mội số phương thức khởi tạo: TcpClient(): Tạo một đối tượng TcpClient TcpClient(IPEndPoint): Tạo một đối tượng TcpClient và gắn với một IPEndPoint cục bộ … Một số thuộc tính: Connected: Trả về trạng thái đã kết nối đến Server hay chưa? Một số phương thức: Nguyễn Vũ – IT Faculty, Viet Han Friendship 10
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (2) Lớp TCPClient Một số phương thức: Close(): Giải phóng đối tượng TcpClient nhưng ko đóng kết nối. Connect(RemoteHost, Port): Kết nối đến một Server có tên và số hiệu cổng. GetStream(): Trả về NetworkStream để gửi nhận dữ liệu qua NetworkStream (thường dùng kết hợp với StreamReader và StreamWriter). Nguyễn Vũ – IT Faculty, Viet Han Friendship 11
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (3) Ví du tao ch ̣ ̣ ương trình Client vớ i lớ p TCPClient ̣ Tao đô ́i tượng TcpClient IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"),2012); TcpClient client = new TcpClient(); Kết nối đến Server: client.Connect(iep); Gắn với StreamReader và StreamWriter đê g ̉ ửi và nhân d ̣ ữ liêu: ̣ StreamReader sr =newStreamReader(client.GetStream()); StreamWriter sw = new StreamWriter(client.GetStream()); Gửi dữ liêu: ̣ sw.WriteLine(input); sw.Flush(); Nhân ḍ ữ liêu: ̣ String kq = sr.ReadLine(); Nguyễn Vũ – IT Faculty, Viet Han Friendship 12
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (4) Lớp TCPListener Là một lớp cho phép người lập trình có thể xây dựng các ứng dụng Server như: SMTP Server, FTP Server, DNS Server,… Ứng dụng Server khác ứng dụng Client ở chỗ nó luôn lắng nghe và chấp nhận kết nối đến từ Client. Nguyễn Vũ – IT Faculty, Viet Han Friendship 13
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (5) Lớp TCPListener Một số phương thức khởi tạo: TcpListener(Port: Int32): Tạo và lắng nghe kết nối ở cổng chỉ định. TcpListener(IPEndPoint): Tạo TcpListener với một IPEndPoint. TcpListener(IPAddress, Int32): Tạo một TcpListener và lắng nghe kết nối đến tại địa chỉ IP và cổng chỉ định. Nguyễn Vũ – IT Faculty, Viet Han Friendship 14
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (5) Lớp TCPListener Một số phương thức khác: AcceptSocket(): Chấp nhận một kết nối đang chờ. AcceptTcpClient(): Chấp nhận một kết nối đang chờ. Pending(): Nếu trả về giá trị “true” khi có kết nối nào đang chờ. Start(): Bắt đầu lắng nghe yêu cầu kết nối. Stop(): Dừng việc lắng nghe kết nối. Nguyễn Vũ – IT Faculty, Viet Han Friendship 15
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (6) Ví du tao ch ̣ ̣ ương trình Server vớ i lớ p TCPServer ̣ Tao đô ́i tượng TcpListener và gắn với môt IPEndPoint: ̣ IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"),2012); TcpListener server = new TcpListener(iep); Bắt đầu lắng nghe kết nối: server.Start(); ̣ Chấp nhân kê ́t nối từ Client: TcpClient client=server.AccepTcpClient(); Gắn kết với StreamReader và StreamWriter đê g ̉ ửi và nhân d ̣ ữ liêu ̣ StreamReader sr =newStreamReader(client.GetStream()); StreamWriter sw = new StreamWriter(client.GetStream()); Gửi dữ liêu:̣ sw.WriteLine(input); sw.Flush(); Nhân ḍ ữ liêu:̣ String kq = sr.ReadLine(); Nguyễn Vũ – IT Faculty, Viet Han Friendship 16
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (7) Lớp UDPClient Dùng giao thức UDP để tạo các ứng dụng không cần phải thiết lập kết nối giữa hai bên khi tiến hành trao đổi thông tin. Một số phương thức khởi tạo: UdpClient(): tạo một đối tượng từ UDPClient UdpClient(Int32): Tạo một đối tượng UdpClient và gắn kết với một cổng. UdpClient(IPEndPoint): Tạo một đối tượng UdpClient và gắn kết với một IPEndPoint (gồm địa chỉ IP và một cổng). … Nguyễn Vũ – IT Faculty, Viet Han Friendship 17
- Sử dụng các lớp hỗ trợ được xây dựng từ Socket (8) Lớp UDPClient Một số phương thức: BeginReceive(): Nhận dữ liệu không đồng bộ từ máy ở xa. BeginSend(): Gửi dữ liệu không đồng bộ tới máy ở xa. Close(): đóng kết nối Connect(): Thiết lập một Default remote host EndReceive(): Kết thúc nhận dữ liệu không đồng bộ ở trên. EndSend(): Kết thúc gửi dữ liệu không đồng bộ ở trên. Receive(): Nhận dữ liệu đồng bộ do máy ở xa gửi tới. Send(): Gửi dữ liệu đồng bộ cho máy ở xa. Nguyễn Vũ – IT Faculty, Viet Han Friendship 18
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình mạng nâng cao ICMP protocol - Nguyễn Vũ
29 p | 161 | 26
-
Bài giảng Lập trình C nâng cao: Chương 5 - Trần Minh Thái
22 p | 144 | 18
-
Bài giảng Lập trình mạng nâng cao: Giới thiệu - Nguyễn Xuân Vinh
8 p | 130 | 16
-
Bài giảng Lập trình C nâng cao: Chương 1 - Trần Minh Thái
25 p | 122 | 15
-
Bài giảng Lập trình mạng nâng cao - Chương 3: IP Multicasting
21 p | 95 | 11
-
Bài giảng Lập trình mạng nâng cao - Xử lý sự kiện (Event)
47 p | 118 | 10
-
Bài giảng Lập trình mạng: Chương 3 - ThS. Trần Bá Nhiệm
96 p | 93 | 9
-
Bài giảng Lập trình mạng: Bài 4 - Bùi Trọng Tùng
20 p | 78 | 7
-
Bài giảng Lập trình mạng: Lập trình socket nâng cao: Tùy biến socket - TS. Nguyễn Hoài Sơn
48 p | 94 | 7
-
Bài giảng Lập trình web nâng cao: Chương 3 - Trường ĐH Văn Hiến
26 p | 19 | 5
-
Bài giảng Lập trình mạng: Lập trình UDP socket nâng cao - TS. Nguyễn Hoài Sơn
28 p | 106 | 5
-
Bài giảng Lập trình nâng cao - Chương 3: Mảng
48 p | 66 | 5
-
Bài giảng Lập trình nâng cao: Bài 4+5+6 - Trương Xuân Nam
25 p | 34 | 4
-
Bài giảng Lập trình nâng cao: Bài 1 - Trương Xuân Nam
18 p | 24 | 3
-
Bài giảng Lập trình mạng Java: Chương 0 - ThS. Nguyễn Minh Thành
8 p | 71 | 3
-
Bài giảng Lập trình mạng: Giới thiệu môn học - TS. Nguyễn Hoài Sơn
13 p | 95 | 2
-
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 5. Kiểu mảng và xâu ký tự
16 p | 2 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn