1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình mạng nâng cao - Chương 3: IP Multicasting

21 10 0

Đ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 21
Dung lượng 713,5 KB

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

Nội dung

Nội dung Bài giảng Lập trình mạng nâng cao - Chương 3: IP Multicasting trình bày những nội dung về kỹ thuật IP Multicasting, Socket Multicasting trong .Net và một số bài tập. Mời các bạn tham khảo.

Trang 1

Chương 3

IP MULTICASTING

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

Trang 2

Kỹ thuật IP Multicasting

 BroadCasting là gì?

 Dùng để gửi một gói tin đến tất cả các nút trong mạng

 Để thực hiện hình thức quảng bá, địa chỉ đến của gói tin sẽ là địa chỉ quảng bá

Trang 3

IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 9050);

byte[] data = Encoding.ASCII.GetBytes("This is a test message");

sock.SendTo(data, iep);

sock.Close();

}

Trang 4

Kỹ thuật IP Multicasting

Dùng kỹ thuật BroadCasting để gửi dữ liệu đến nhiều máy trong mạng cục bộ

Đối với một ứng dụng C # để gửi các gói dữ liệu Broadcast, ta dùng

phương thức SetSocketOption() của lớp Socket :

Socket sock = new Socket(AddressFamily.InterNetwork,

SocketType.Dgram, ProtocolType.Udp);

sock.SetSocketOption(SocketOptionLevel.Socket,

SocketOptionName.Broadcast, 1);

Trang 5

public static void Main() {

Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,

ProtocolType.Udp);

IPEndPoint iep1 = new IPEndPoint(IPAddress.Broadcast, 9050);

IPEndPoint iep2 = new IPEndPoint(IPAddress.Parse("192.168.1.255"), 9050);

string hostname = Dns.GetHostName();

byte[] data = Encoding.ASCII.GetBytes(hostname);

sock SetSocketOption(SocketOptionLeyel.Socket,

SocketOptionName.Broadcast, 1);

sock SendTo( data , iep1 );

sock SendTo( data , iep2 );

sock Close();

Trang 6

Kỹ thuật IP Multicasting

Nhận gói dữ liệu:

class RecvBroadcst {

public static void Main() {

Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,

byte[] data = new byte[1024];

int recv = sock ReceiveFrom( data , ref ep );

string stringData = Encoding.ASCII.GetString( data , 0, recv );

Console.WriteLine("received: {0} from: {1}", stringData, ep.ToString());

data = new byte[1024];

recv = sock ReceiveFrom( data , ref ep );

stringData = Encoding.ASCII.GetString( data , 0, recv );

Console.WriteLine("received: {0} from: {1}",stringData, ep ToString());

sock Close();

Trang 7

Console.Write("Press Enter to stop");

string data = Console.ReadLine();

Trang 8

IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 9050);

string hostname = Dns.GetHostName();

byte[] data = Encoding.ASCII.GetBytes(hostname);

Trang 9

Kỹ thuật IP Multicasting

 Multicasting là gì?

 Một địa chỉ Multicasting cho phép thiết bị gửi dữ liệu tới một tập xác định trước các host, được biết đến như các nhóm Multicast, trong các mạng con khác nhau

224.0.0.0–224.0.0.255 Local network control block

224.0.1.0–224.0.1.255 Internetwork control block

Trang 10

 Một số địa chỉ Multicast:

Kỹ thuật IP Multicasting

Trang 11

Kỹ thuật IP Multicasting

 Có hai kỹ thuật Multicast được sử dụng:

 Peer to peer:

Trang 12

Kỹ thuật IP Multicasting

 Có hai kỹ thuật Multicast được sử dụng:

 Central Server:

Trang 13

Kỹ thuật IP Multicasting

 Gửi multicast Packets qua Router

Trang 14

Socket Multicasting trong Net

Sử dụng phương thức SocketOption():

 Phương thức SocketOption() dùng để:

 Thêm một socket vào nhóm Multicast

 Loại một socket khỏi nhóm Multicast

Trang 15

Socket Multicasting trong Net

Trang 16

Socket Multicasting trong Net

Gửi dữ liệu Multicast

Trang 17

Socket Multicasting trong Net

Nhận dữ liệu Multicast

class MultiRecv{

public static void Main() {

Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

byte[] data = new byte[1024];

int recv = sock.ReceiveFrom(data, ref ep);

string stringData = Encoding.ASCII.GetString(data, 0, recv);

Console.WriteLine("received: {0} from: {1}", stringData, ep.ToString());

sock.Close();

Trang 18

Socket Multicasting trong Net

Multicast với lớp UdpClient

Trang 19

Socket Multicasting trong Net

UdpClient Multicast Receiver

IPEndPoint iep = new IPEndPoint(IPAddress.Any, 0);

byte[] data = sock.Receive(ref iep);

string stringData = Encoding.ASCII.GetString(data, 0, data.Length);

Console.WriteLine("received: {0} from: {1}", stringData, iep.ToString()); sock.Close();

}

Trang 20

Socket Multicasting trong Net

UdpClient Multicast Sender

class UdpClientMultiSend

{

public static void Main()

{

UdpClient sock = new UdpClient();

IPEndPoint iep = new IPEndPoint(IPAddress.Parse("224.100.0.1"), 9050);

byte[] data = Encoding.ASCII.GetBytes("This is a test message");

sock.Send(data, data.Length, iep);

sock.Close();

}

Trang 21

Bài tập về nhà

Xây dựng chương trình chat giữa một Server và nhiều Client sử dụng Socket Broadcast và Socket Multicast?

Ngày đăng: 08/05/2021, 15:33

TỪ KHÓA LIÊN QUAN

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