没钱了,好心人过来看看吧,socket问题~~~~~~~~~~ ( 积分: 20 )

  • 主题发起人 主题发起人 simulink
  • 开始时间 开始时间
S

simulink

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个端口接收多路数据并在tchart上显示,接收时用的是indy的idtcpserver,利用数据中的校验位来区分多路数据,显示的时候显示不同路的数据曲线,但是有一个问题,我接收的时候用的是readbuf函数(应该用select),接收数据后立即发送至一个缓冲区,并调用显示处理函数,具体数据类型以及校验位的判断都在处理函数中进行,利用if语句,并分别调用显示的函数。显示的时候如果是一路数据则显示正常,若两路数据同时来的时候则发现显示速度明显变慢,大概为一路时候的二倍,请帮忙分析一下原因,谢谢!
 
在一个端口接收多路数据并在tchart上显示,接收时用的是indy的idtcpserver,利用数据中的校验位来区分多路数据,显示的时候显示不同路的数据曲线,但是有一个问题,我接收的时候用的是readbuf函数(应该用select),接收数据后立即发送至一个缓冲区,并调用显示处理函数,具体数据类型以及校验位的判断都在处理函数中进行,利用if语句,并分别调用显示的函数。显示的时候如果是一路数据则显示正常,若两路数据同时来的时候则发现显示速度明显变慢,大概为一路时候的二倍,请帮忙分析一下原因,谢谢!
 
对显示加同步试试,或者,控制读写的速度
 
不同的连接起单独的线程readbuf
 
上边的问题已经基本解决了,现在在测试阶段,又发现了如下几个问题:
1 我用一个lcd液晶显示的第三方控件用来显示数据,大约每200ms显示一次,但我发现在程序运行长时间后,当不断切换属性页的时候,发现控件找不到了。
2 发现当数据显示一段时间以后,在chart上点击右键发现出现提示框:list index of bound()括号里边是不确定的数字,这个我估计应该是数组溢出了,但是不知道是在哪一步出现的毛病,请明白人指点一下。
 
后退
顶部