我写了一个C#程序,目的是能够通过路由器控制stc12单片机小车的前进后退
我个人认为,将ip与端口绑定就能实现与路由器的交互,用send方法就能向路由器发送命令,但事实好像不行,求大神们指教一下,代码如下:
public void InitWIFISocket()
{
ips = IPAddress.Parse(ControlIP.ToString());
ipe = new IPEndPoint(ips, Convert.ToInt32(port.ToString()));
Control = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
Control.Bind(ipe);
Control.BeginConnect(ipe, null, null);
this.lbMessage.Items.Add("连接成功");
}
catch(Exception e)
{
MessageBox.Show("WIFI初始化失败:" + e.Message, "WIFI初始化失败提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public string go = 0x01.ToString();
public string back = 0x02.ToString();
public string TurnLeft = 0x03.ToString();
public string TurnRight = 0x04.ToString();
public void GO()
{
BuffByte = System.Text.Encoding.Default.GetBytes(go);
Control.Send(BuffByte);
}
public void BACK()
{
BuffByte = System.Text.Encoding.Default.GetBytes(back);
Control.Send(BuffByte);
}
public void TURNLEFT()
{
BuffByte = System.Text.Encoding.Default.GetBytes(TurnLeft);
Control.Send(BuffByte);
}
public void TURNRIGHT()
{
BuffByte = System.Text.Encoding.Default.GetBytes(TurnRight);
Control.Send(BuffByte);
}
private void btnFront_Click(object sender, EventArgs e)
{
Con += GO;
}
private void btnBack_Click(object sender, EventArgs e)
{
Con += BACK;
}
private void btnTurnLeft_Click(object sender, EventArgs e)
{
Con += TURNLEFT;
}
private void btnTurnRight_Click(object sender, EventArgs e)
{
Con += TURNRIGHT;
}
private void btnConnect_Click(object sender, EventArgs e)
{
Con += InitWIFISocket;
this.lbMessage.Items.Add("连接中");
}
}
Con是定义的一个委托实例,上面代码中,系统不执行try里面的bind方法,而执行了catch,这是为什么?还是说这样的方法与路由器根本没法交互?请大神指教