1.用研华的数据采集卡1711L,中断方式单路采集数据,采集非常稳定。
2.另外用Winsock API写了个通信程序,采用的是SOCK_STREAM协议,服务器端选的是异步方式,WSAAsyncSelect(ConnectClient,m_hWnd,WM_READCLOSE,FD_READ|FD_CLOSE); 服务器每次收到数据,都立即显示出来。为了提高通信速度,我放弃了Nagle算法,
int bNodelay = 1;
int err;
err = setsockopt(
sConnect,
IPPROTO_TCP,
TCP_NODELAY,
(char *)&bNodelay,
sizoeof(bNodelay));
要求没10ms通信一次,用的是多媒体定时器。程序写好后,运行非常稳定,我试过一个小时,感觉不到延迟,并且没有阻塞,没有丢点(我发送和接收都有记录)。3.于是,我把两个程序写到一起(通信的服务器不变,把采集程序和通信的客户端程序集成起来),问题出现了,结果通信一小段时间后,服务器段接收不到数据,而客户段再过一段时间后报告block。请问问题出在哪里?该怎么解决?谢谢各位大侠了。
2.另外用Winsock API写了个通信程序,采用的是SOCK_STREAM协议,服务器端选的是异步方式,WSAAsyncSelect(ConnectClient,m_hWnd,WM_READCLOSE,FD_READ|FD_CLOSE); 服务器每次收到数据,都立即显示出来。为了提高通信速度,我放弃了Nagle算法,
int bNodelay = 1;
int err;
err = setsockopt(
sConnect,
IPPROTO_TCP,
TCP_NODELAY,
(char *)&bNodelay,
sizoeof(bNodelay));
要求没10ms通信一次,用的是多媒体定时器。程序写好后,运行非常稳定,我试过一个小时,感觉不到延迟,并且没有阻塞,没有丢点(我发送和接收都有记录)。3.于是,我把两个程序写到一起(通信的服务器不变,把采集程序和通信的客户端程序集成起来),问题出现了,结果通信一小段时间后,服务器段接收不到数据,而客户段再过一段时间后报告block。请问问题出在哪里?该怎么解决?谢谢各位大侠了。
解决方案 »
- 运行时没错误,但是一关闭程序的时候就出现问题 下面是问题描述
- 【¥1000 $$$ 】 关于指针强制类型转换的问题,怎样用一个WORD *的指针操作一个char*的地址?? $$$ ¥100
- (类名*)是什么意思?
- 问个关于'IHTMLElement3' : undeclared identifier的问题
- 如何把位图信息放入内存,以及根据该内存生成位图?
- 请问一个数组的用法(40分)
- 怎么檫用背景图檫去位图。。。。
- 一个在遍历注册表时出现的问题,帮我,谢谢。
- delete 一个对象,怎么会堆栈溢出?
- 100分求vc中能以列表方式显示数据库查询结果的控件。
- 请问在VC下实现皮肤使用的是什么原理?
- 各位看一下这个想法好不好实现?
第3点中报告block是我程序中检测到阻塞自己报告出来的。我试过采集部分用伪函数,通信10分钟没有任何问题;单独数据采集也没有问题。只是集成后,通信就不行了,但是采集仍然进行。
有的话改成while试试
我的结构是这样的采集服务器
网络管理服务器
网络播放器采集段采集数据然后发送给管理服务器,管理服务器在发送给播放器,如果都单独的没有问题
采集服务器---网络管理服务器网络管理服务器--网络播放器 但是一联调就出问题,是网络客户端关闭的时候,管理服务器,采集服务器会出现错误,说socket句柄由问题,但是如果是release版就很少出现,至少到目前我还没有侧出来,为什么在debug下面会出现呢??