C# TCP数据包的接收
我利用DSP中的串口向外发送8比特的数据,并且该串口是和USR-WIFI232连接在一起的(WIFI232 系列产品用于实现串口到WIFI 数据包的双向透明转发,用户无需关心具体细节,模块内部完成协议转换,串口一侧串口数据透明传输,WIFI 网络一侧是TCPIP 数据包,通过简单设置即可指定工作细节),目前能确定的是对WIFI的设置是没有问题的,我能够从上位机软件向DSP发送指令,DSP能收到,并且能正常的运行。但是我的上位机软件无法接收到运行之后发出来的数据。不知道是不是我写的接收程序有问题!
接收程序内容如下:::这里还想把2次接收到的8进制数一起合并成16进制数,但目前上面都收不到!!求教呀!
private void ReceiveMsg()
{
while (true)
{
try
{
//获取数据
byte[] getData = new byte[1024];
ns.Read(getData, 0, getData.Length);
//转化为字符串形式
string msg = Encoding.Default.GetString(getData);
if (temp4_2 == 1)
{
if (int.TryParse(msg, out _msg_2) == false)
throw new Exception("msg节点不是数字");
msg1_2 = _msg_2.ToString();
_msg_2 = Convert.ToInt32(msg1_2, 2);
_msg_2 = _msg_2 * 256;
}
else
if (temp4_2 == 2)
{
if (int.TryParse(msg, out _msg1_2) == false)
throw new Exception("msg节点不是数字");
msg1_2 = _msg1_2.ToString();
_msg1_2 = Convert.ToInt32(msg1_2, 2);
_msg1_2 = _msg1_2 + _msg_2;
temp4_2 = 0;
msg2_2 = Convert.ToString(_msg1_2, 16);
textBox16.Text = msg2_2;
_msg2_2 = Convert.ToInt32(msg2_2, 16);
_msg2_2 = _msg2_2 / 65535 * 5;
textBox15.Text = _msg2_2.ToString("F6");
IsReceiveMsg.Invoke(showReceiveMsgCallBack, msg2_2);
else
temp4_2 = 0;
temp4_2++;
}
catch (ThreadAbortException)
{
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
//释放相关的系统资源
if (ns != null)
ns.Dispose();
break;
}
}
}