问题描述
我实现了客户端和服务器之间的通信。但是我有一个问题,在发送带有函数 can_SendisoTP() 的 CAN 帧后,选择函数设置为 0,即使它应该是 1,因为它可以直接从服务器读取数据。你知道为什么它不起作用吗。
它仅在我在执行选择行之前或使用睡眠函数(std::chrono::seconds dura(1); std::this_thread::sleep_for(dura);)之前做断点时才有效/p>
FD_ZERO(&fd);
FD_SET(s,&fd);
can_SendisoTP(s,result);
//std::chrono::seconds dura(1);
//std::this_thread::sleep_for(dura);
rv = select(s + 1,&fd,NULL,&timeout);
if (rv == -1)
perror("select"); /* an error accured */
else if (rv == 0)
printf("timeout"); /* a timeout occured */
else
{
nbytes = read(s,buffer,sizeof(buffer));
}
非常感谢!!!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)