我编辑了代码用于和高清摄像机通讯,摄像机作为服务器端,分别有两个端口,一个端口用于控制命令的交互,一个命令用于获取摄像机图像,所使用的通讯代码是一样的。
但图像通讯是连续不间断的,每收到一张图片,要回复一个继续的命令,这个一直工作正常。但控制命令的交互就总是出问题,只能第一次发送是正确的,后面发送就无响应了,相机也不会有任何响应发生。
看网上有介绍说是异步通讯的问题,在while循环里的会一直工作,没有while循环的会出现中断情况,可我不知道如何实现,网上的代码都是简单的发送,关闭,我也尝试了发送前建立,发送结束关闭,但还是同样的问题。
请各位大侠给予指导,谢谢!
public bool networkbuild()//建立端口连接
{
if (client == null)
{
try
{
client = new TcpClient(networkip, networkport);
netstream = client.GetStream();
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}
return true;
}
public void networkclose()//关闭端口连接
{
if (client != null)
{
try
{
netstream.Close();
client.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
public bool netsendmessage(byte[] message,int length)//发送数据
{
if (netconnected)
{
try
{
netstream.Write(message, 0, length);
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}
MessageBox.Show("连接已关闭");
return false;
}
public bool netreadmessage(byte[] message, int length)//读取数据
{
try
{
int i = 0;
int cont = 0;
if (netstream != null)
{
while (i<length)
{
cont = netstream.Read(message, i, length - i);
if (cont > 0)
{
i += cont;
}
}
}
else
{
return false;
}
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}
C#中的tcpclient中断问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 冰山76 2022-06-01 14:18关注
但控制命令的交互就总是出问题,只能第一次发送是正确的,后面发送就无响应了,相机也不会有任何响应发生。
交互命令发出之后,服务器端做出应答,你应该截取每一步的输入输出,看看到底是在哪里出现的问题,这段代码无法找到问题所在解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)
- ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。