using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TheMothedOfNetworkBridge
{
public partial class Form1 : Form
{
private LinkedList<BridgeStruct> bridgelist1 = new LinkedList<BridgeStruct>();
private LinkedList<BridgeStruct> bridgelist2 = new LinkedList<BridgeStruct>();
public int goal { set; get; }
public Form1()
{
InitializeComponent();
}
private void sendMessage(Message message)
{
bool flag1 = false;
bool flag2 = false;
bool issend = false;
if (1 == message.segment)
{
foreach (BridgeStruct bs in bridgelist1)
{
if (bs.mac == message.id)
{
flag2 = true;
break;
}
else
{
flag2 = false;
}
}
if (!flag2)
{
saybox.Text += "1#bridge : sir,我接到了左端口传来的信息,但是我不知道他的信息,\n\t于是我学习记下他的信息!完毕!\n";
BridgeStruct newb = new BridgeStruct();
newb.mac = message.id;
newb.port = 1;
bridgelist1.AddLast(newb);
}
foreach (BridgeStruct bs in bridgelist1)
{
if (bs.mac == message.gold)
{
flag1 = true;
if (bs.port == message.segment)
{
saybox.Text += "1#bridge : sir,我接到了左端口传来的信息,但是我知道他的目的地在左端口,\n\t于是我没有转发,丢弃!完毕!\n";
issend = false;
break;
}
else
{
saybox.Text += "1#bridge : sir,我接到了左端口传来的信息,但是我知道他的目的地在右端口,\n\t于是我转发,完毕!\n";
issend = true;
break;
}
}
else
flag1 = false;
}
if (!flag1)
{
saybox.Text += "1#bridge : sir,我接到了左端口传来的信息,但是我不知道他的目的地,\n\t于是我转发!完毕!\n";
issend = true;
}
if (issend)
{
issend = false;
flag1 = false;
flag2 = false;
foreach (BridgeStruct bs in bridgelist2)
{
if (bs.mac == message.id)
{
flag2 = true;
break;
}
else
{
flag2 = false;
}
}
if (!flag2)
{
saybox.Text += "2# bridge : sir,我接到了左端口传来的信息,但是我不知道他的信息,\n\t于是我学习记下他的信息!完毕!\n";
BridgeStruct newb = new BridgeStruct();
newb.mac = message.id;
newb.port = 1;
bridgelist2.AddLast(newb);
}
foreach (BridgeStruct bs in bridgelist2)
{
if (bs.mac == message.gold)
{
flag1 = true;
if (bs.port == message.segment)
{
saybox.Text += "2#bridge : sir,我接到了左端口传来的信息,但是我知道他的目的地在左端口,\n\t于是我没有转发,丢弃!完毕!\n";
issend = false;
break;
}
else
{
saybox.Text += "2#bridge : sir,我接到了左端口传来的信息,但是我知道他的目的地在右端口,\n\t于是我转发,完毕!\n";
issend = true;
break;
}
}
else
flag1 = false;
}
if (!flag1)
{
saybox.Text += "2#bridge : sir,我接到了左端口传来的信息,但是我不知道他的目的地,\n\t于是我转发!完毕!\n";
issend = true;
}
if (issend)
{
issend = false;
flag2 = false;
flag1 = false;
}
}
}
if (2 == message.segment)
{
foreach (BridgeStruct bs in bridgelist1)
{
if (bs.mac == message.id)
{
flag2 = true;
break;
}
else
{
flag2 = false;
}
}
if (!flag2)
{
saybox.Text += "1#bridge : sir,我接到了右端口传来的信息,但是我不知道他的信息,\n\t于是我学习记下他的信息!完毕!\n";
BridgeStruct newb = new BridgeStruct();
newb.mac = message.id;
newb.port = 2;
bridgelist1.AddLast(newb);
}
foreach (BridgeStruct bs in bridgelist1)
{
if (bs.mac == message.gold)
{
flag1 = true;
if (bs.port == message.segment)
{
saybox.Text += "1#bridge : sir,我接到了右端口传来的信息,但是我知道他的目的地在右端口,\n\t于是我没有转发,丢弃!完毕!\n";
issend = false;
break;
}
else
{
saybox.Text += "1#bridge : sir,我接到了右端口传来的信息,但是我知道他的目的地在左端口,\n\t于是我转发,完毕!\n";
issend = true;
break;
}
}
else
flag1 = false;
}
if (!flag1)
{
saybox.Text += "1#bridge : sir,我接到了右端口传来的信息,但是我不知道他的目的地,\n\t于是我转发!完毕!\n";
issend = true;
}
if (issend)
{
issend = false;
flag1 = false;
flag2 = false;
}
foreach (BridgeStruct bs in bridgelist2)
{
if (bs.mac == message.id)
{
flag2 = true;
break;
}
else
{
flag2 = false;
}
}
if (!flag2)
{
saybox.Text += "2#bridge : sir,我接到了左端口传来的信息,但是我不知道他的信息,\n\t于是我学习记下他的信息!完毕!\n";
BridgeStruct newb = new BridgeStruct();
newb.mac = message.id;
newb.port = 1;
bridgelist2.AddLast(newb);
}
foreach (BridgeStruct bs in bridgelist2)
{
if (bs.mac == message.gold)
{
flag1 = true;
if (bs.port == (message.segment - 1))
{
saybox.Text += "2#bridge : sir,我接到了左端口传来的信息,但是我知道他的目的地在左端口,\n\t于是我没有转发,丢弃!完毕!\n";
issend = false;
break;
}
else
{
saybox.Text += "2#bridge : sir,我接到了左端口传来的信息,但是我知道他的目的地在右端口,\n\t于是我转发,完毕!\n";
issend = true;
break;
}
}
else
flag1 = false;
}
if (!flag1)
{
saybox.Text += "2#bridge : sir,我接到了左端口传来的信息,但是我不知道他的目的地,\n\t于是我转发!完毕!\n";
issend = true;
}
if (issend)
{
issend = false;
flag2 = false;
flag1 = false;
}
}
if (3 == message.segment)
{
foreach (BridgeStruct bs in bridgelist2)
{
if (bs.mac == message.id)
{
flag2 = true;
break;
}
else
{
flag2 = false;
}
}
if (!flag2)
{
saybox.Text += "2#bridge : sir,我接到了右端口传来的信息,但是我不知道他的信息,\n\t于是我学习记下他的信息!完毕!\n";
BridgeStruct newb = new BridgeStruct();
newb.mac = message.id;
newb.port = 2;
bridgelist2.AddLast(newb);
}
foreach (BridgeStruct bs in bridgelist2)
{
if (bs.mac == message.gold)
{
flag1 = true;
if (bs.port == (message.segment-1))
{
saybox.Text += "2#bridge : sir,我接到了右端口传来的信息,但是我知道他的目的地在右端口,\n\t于是我没有转发,丢弃!完毕!\n";
issend = false;
break;
}
else
{
saybox.Text += "2#bridge : sir,我接到了右端口传来的信息,但是我知道他的目的地在左端口,\n\t于是我转发,完毕!\n";
issend = true;
break;
}
}
else
flag1 = false;
}
if (!flag1)
{
saybox.Text += "2#bridge : sir,我接到了右端口传来的信息,但是我不知道他的目的地,\n\t于是我转发!完毕!\n";
issend = true;
}
if (issend)
{
issend = false;
flag1 = false;
flag2 = false;
foreach (BridgeStruct bs in bridgelist1)
网桥的自学习算法
最新推荐文章于 2024-03-27 16:25:46 发布
本文深入探讨了网桥的自学习算法,阐述了其在网络中的工作原理和重要性,帮助读者理解如何通过这种算法实现更高效的网络通信。

最低0.47元/天 解锁文章
1405

被折叠的 条评论
为什么被折叠?



