3138|6

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一个关于队列共享的问题 [复制链接]

服务器端数据结构有问题,也就是在操作队列的时候,在发送端线程中发送数据后删除一个节点

//我的系统采用C/S架构, 在网络通信部分采用多线程模式(也就是每个运行着的客户端对应服务器端的一个线程,既TCPIP通信的子线程)

在串口通信线程中
        //将该数据写入队列
        memcpy(struDataNote.subStaBuff, buff, sizeof(struDataNote.subStaBuff));
        ::EnterCriticalSection(&pAnalyseDlg->m_DequeCSection);
        if(pAnalyseDlg->m_Mydeque.size() >= 100)
        {
                pAnalyseDlg->m_Mydeque.pop_front();//删除一个节点
        }
        pAnalyseDlg->m_Mydeque.push_back(struDataNote);
        ::LeaveCriticalSection(&pAnalyseDlg->m_DequeCSection);


在TCPIP通信的子线程中将数据实时地发给每个运行着的客户端,
        //将队列中的数据取出发送给客户端
        ::EnterCriticalSection(&pDlgClient->m_DequeCSection);
        if(pDlgClient->m_Mydeque.empty() != 1)//队列不为空
        {
                struct SubSTempData *   pStruTemp;
                pDlgClient->m_dequeIter = pDlgClient->m_Mydeque.begin();
                pStruTemp = &(*(pDlgClient->m_dequeIter));
                memcpy(sendBuff, pStruTemp->subStaBuff, sizeof(pStruTemp->subStaBuff));
                sendBuff[0]=0xBB;
                sendBuff[1]=0x99;
                sendBuff[26]=0xF0;
                SendData(&ClientSocket, sendBuff, 27);//主动发送给客户端
                pDlgClient->m_Mydeque.pop_front();//删除一个节点
        }
        ::LeaveCriticalSection(&pDlgClient->m_DequeCSection);

     每个子线程运行一次将会在将一个节点的数据发送给一个客户端后就删除共享队列的这个节点,
也就是这个数据被删除后就没办法发给其他客户端了.

最新回复

以上问题用SELECT模式可能好解决一点,用多线程模式可能不是很好解决 再请教大家一个问题: 准备以后做综合自动化系统 要做成B/S模式 都要用哪些开发语言? 都要用什么开发工具? 都需要那些方面的知识? 希望大家能够指点指点  详情 回复 发表于 2008-11-26 13:52
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
那就把所有的结点先遍历一遍,全部保存下来,然后一次性发生出去了,到了客户端再一个一个的解析出来了。
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

板凳
 


顶!

我也顺便打个广告,本人也有支持ESRI ARCGIS的.shp文件的地图的Windows mobile 5.0/6.0手机GIS地图软件----GPS移动GIS(GPSMobileGIS),PC端的服务软件----移动GIS服务平台(GPSMobileGISServer),可成套出售,可以完成以下功能:
1,通过GPRS上网连接后台服务端程序来实时传输在户外工作采集的数据到后台数据库!

2,可以实时发回PDA的GPS信息,在后台地图上直接定位PDA用户的位置,也可以下发PDA的经纬度信息让PDA用户定位和跟踪其它PDA用户,了解自己与其它PDA的位置关系,起到定位和跟踪的作用!

3,可以发回PDA当前所在地名如在天河城附近等,实现在外面工作就知道在何时何地上班打卡的效果,同时可以在后台为相应的PDA用户设置固定时长返回一次当前位置的GPS信息确保对相应PDA用户的定位,跟踪与监控!

4,移动GIS服务平台可以对PDA用户进行登记,注销等管理,在移动GIS服务平台登记的PDA用户才可登陆此服务器,依据IMSI和IMEI号来进行登陆验证,安全可靠,

5,可以对在外面工作的PDA用户进行任务指派和任务管理如
   PDA号码:13800138000
   任务名称:测试线路
   任务说明:主要是在天河北路一带的电力设施进行检测!

6,(此功能为信息采集的核心功能)用户可自行设置需要采集信息的对象及其属性,指派给指定的PDA用户,如测试电路的属性模板:
    //0-编辑属性(可多个) ; 1-下拉属性(可多个) ; 2-选择属性(可多个) ; 3-大文本编辑框(可以没有此属性,但有此属性时只能有一个) ; 4-列表属性(可以没有此属性,但有此属性时只能有一个)(属性0+属性1+属性2/2+属性2%2)<=28
    name,名称,0,;beproject,所属项目,0,;type,类型,1,0:小-1:中-2:大;complete,完成,2,;remark,备注,3,;listbox,设备表,4,

7,可以实时上传文件到后台服务器,实时下载后台服务器的文件和实时更新PDA上客户端的系统!

8,可以实时采集和传输图像信息!

跟据您的需要,还可以增加其它功能!

可以应用在以下系统:
     1、PDA移动办公如户外,异地打卡,上班;
     2、GIS林业资源监控系统;
     3、GIS电力巡检系统等;
     4、GIS通信资源如移动,联通,电信的管线资源巡检系统等!

QQ:546046182
EMail:wang921018@tom.com

 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 


顶!

我也顺便打个广告,本人也有支持ESRI ARCGIS的.shp文件的地图的Windows mobile 5.0/6.0手机GIS地图软件----GPS移动GIS(GPSMobileGIS),PC端的服务软件----移动GIS服务平台(GPSMobileGISServer),可成套出售,可以完成以下功能:
1,通过GPRS上网连接后台服务端程序来实时传输在户外工作采集的数据到后台数据库!

2,可以实时发回PDA的GPS信息,在后台地图上直接定位PDA用户的位置,也可以下发PDA的经纬度信息让PDA用户定位和跟踪其它PDA用户,了解自己与其它PDA的位置关系,起到定位和跟踪的作用!

3,可以发回PDA当前所在地名如在天河城附近等,实现在外面工作就知道在何时何地上班打卡的效果,同时可以在后台为相应的PDA用户设置固定时长返回一次当前位置的GPS信息确保对相应PDA用户的定位,跟踪与监控!

4,移动GIS服务平台可以对PDA用户进行登记,注销等管理,在移动GIS服务平台登记的PDA用户才可登陆此服务器,依据IMSI和IMEI号来进行登陆验证,安全可靠,

5,可以对在外面工作的PDA用户进行任务指派和任务管理如
   PDA号码:13800138000
   任务名称:测试线路
   任务说明:主要是在天河北路一带的电力设施进行检测!

6,(此功能为信息采集的核心功能)用户可自行设置需要采集信息的对象及其属性,指派给指定的PDA用户,如测试电路的属性模板:
    //0-编辑属性(可多个) ; 1-下拉属性(可多个) ; 2-选择属性(可多个) ; 3-大文本编辑框(可以没有此属性,但有此属性时只能有一个) ; 4-列表属性(可以没有此属性,但有此属性时只能有一个)(属性0+属性1+属性2/2+属性2%2)<=28
    name,名称,0,;beproject,所属项目,0,;type,类型,1,0:小-1:中-2:大;complete,完成,2,;remark,备注,3,;listbox,设备表,4,

7,可以实时上传文件到后台服务器,实时下载后台服务器的文件和实时更新PDA上客户端的系统!

8,可以实时采集和传输图像信息!

跟据您的需要,还可以增加其它功能!

可以应用在以下系统:
     1、PDA移动办公如户外,异地打卡,上班;
     2、GIS林业资源监控系统;
     3、GIS电力巡检系统等;
     4、GIS通信资源如移动,联通,电信的管线资源巡检系统等!

QQ:546046182
EMail:wang921718@tom.com

 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 
每个都保存一个副本
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
先把需求和环境说清楚啊,这个保存副本的方法不可取
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

7
 

以上问题用SELECT模式可能好解决一点,用多线程模式可能不是很好解决

再请教大家一个问题:
准备以后做综合自动化系统 要做成B/S模式 都要用哪些开发语言? 都要用什么开发工具? 都需要那些方面的知识?

希望大家能够指点指点
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表