Lập trình mạng nâng cao

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

 

ppt18 trang | Chia sẻ: Mr Hưng | Lượt xem: 751 | Lượt tải: 0download
Nội dung tài liệu Lập trình mạng nâng cao, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
HỌC PHẦN LẬP TRÌNH MẠNG NÂNG CAO1Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeLập trình mạng nâng caoThờ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ậpBáo cáo đồ án2Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeMục tiêu của môn họcNắm được cách thức trao đổi thông điệp giữa các máy tính trong mạngHiể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 3Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeTà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 4Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeNội dungSocket không đồng bộ (Asynchronous Socket)Sử dụng đa luồng (Thread) trong ứng dụng mạngKỹ thuật IP MulticastingGiao thức ICMPGiao thức SMTP, POP3Giao thức HTTPGiao thức FTP5Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeCác kiến thức cũLập trình socket với giao thức TCPSử dụng kỹ thuật lập trình thông thườngSử dụng luồng nhập xuất(networkStream)Sử dụng luồng nhập xuất hướng ký tự StreamReader, StreamWriterLập trình socket với giao thức UDPLập trình với các lớp hỗ trợ được xây dựng từ lớp SocketTCPCLient, TCPListenerUDP Client6Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử 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 IPEndPointKhai báo socketGắ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ốiTạo đố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);7Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử 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 IPEndPointKhai báo socketKết nối đến ServerTạo đố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);8Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử 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):Gửi dữ liệu: sw.WriteLine(input); sw.Flush();Nhận dữ liệu: string kq=sr.ReadLine();9Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử 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 TCPClientMội số phương thức khởi tạo: TcpClient(): Tạo một đối tượng TcpClientTcpClient(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:10Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử dụng các lớp hỗ trợ được xây dựng từ Socket (2)Lớp TCPClientMộ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).11Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử dụng các lớp hỗ trợ được xây dựng từ Socket (3)Ví dụ tạo chương trình Client với lớp TCPClientTạo đối tượng TcpClientIPEndPoint 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 dữ liệu:String kq = sr.ReadLine();12Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử dụng các lớp hỗ trợ được xây dựng từ Socket (4)Lớp TCPListenerLà 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.13Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử dụng các lớp hỗ trợ được xây dựng từ Socket (5)Lớp TCPListenerMộ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.14Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử dụng các lớp hỗ trợ được xây dựng từ Socket (5)Lớp TCPListenerMộ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.15Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử dụng các lớp hỗ trợ được xây dựng từ Socket (6)Ví dụ tạo chương trình Server với lớp TCPServerTạo đố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ệuStreamReader sr =newStreamReader(client.GetStream());StreamWriter sw = new StreamWriter(client.GetStream());Gửi dữ liệu:sw.WriteLine(input);sw.Flush();Nhận dữ liệu:String kq = sr.ReadLine();16Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử dụng các lớp hỗ trợ được xây dựng từ Socket (7)Lớp UDPClientDù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ừ UDPClientUdpClient(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).17Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT CollegeSử dụng các lớp hỗ trợ được xây dựng từ Socket (8)Lớp UDPClientMộ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ốiConnect(): Thiết lập một Default remote hostEndReceive(): 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.18Nguyễn Vũ Vũ – IT Faculty, Viet Han Friendship IT College

Các file đính kèm theo tài liệu này:

  • pptbaigianglaptrinhmangnangcaonguyenvu_3627.ppt
Tài liệu liên quan