1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài Giảng Lập Trình Mạng Nâng Cao

18 1,4K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 496 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

HỌC PHẦN

LẬP TRÌNH MẠNG NÂNG CAO

Trang 2

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

2

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

Trang 3

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

Trang 4

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

4

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

Trang 5

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

Trang 6

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

6

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ử dụng luồng nhập xuất(networkStream)

 Sử dụng 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 trình với các lớp hỗ trợ được xây dựng từ lớp Socket

 TCPCLient, TCPListener

 UDP Client

Trang 7

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

 Tạo đối tượng NetworkStream bằng lêânh:

NetworkStream ns= new NetworkStream(<đối tượng kiểu socket>);

 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);

Trang 8

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

8

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

 Tạo đối tượng NetworkStream bằng lêânh:

NetworkStream ns= new NetworkStream(<đối tượng kiểu socket>);

 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);

Trang 9

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):

Gửi dữ liêâu: sw.WriteLine(input);

sw.Flush();

Nhâân dữ liêâu: string kq=sr.ReadLine();

Trang 10

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

10

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:

Trang 11

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).

Trang 12

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

12

Sử 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 TCPClient

 Tạo đố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 dữ liệu:

String kq = sr.ReadLine();

Trang 13

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

Trang 14

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

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ở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.

Trang 15

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.

Trang 16

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

16

Sử 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 TCPServer

 Tạ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ệ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();

Trang 17

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).

…

Trang 18

Nguyễn Vũ – IT Faculty, Viet Han Friendship

IT College

18

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.

Ngày đăng: 23/10/2015, 19:52

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm