客户端接收数据-delphi 我现在用socket客户端接收来自下位机的数据,每80ms收一个包10000字节的包(注意,一个包的数据可能分几次发送过来),接收完成后,还要画图。我现在只能这样:开一个线程,查询到有数据进来就画图。这样不好的地方是:我需要不停的查询,这样速度将会比较慢,还可能丢帧。能否使用事件触发方式:端口接收到数据则产生中断或消息,delphi的TCPClient好像不行。请高手指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你说的我不大明白。通常我遇到这个问题,首先我会用udp控件而非tcp控件。其次 udp控件收到消息后,将数据放到一个数据队列里。一个专门的绘图线程不停检测队列里数据,只要有数据就进行绘图。 可以用列表做队列。但是要注意下并发的问题不要同时修改这个队列。udp控件添加 绘图线程读取并删除 同时会出错,锁一下。 我建议用Delphi自带的ServerSocket和ClientSocket。 用TServerSocket时,你查查帮助文档,从Delphi7之后,该控件就不在可视控件中,但在ScktComp.pas单元中还有定义。 关于字符串分解函数的问题 DELPHI执行程序运行那条代码啊? SpeedButton的transparent属性为true 怎么不透明? 如何写程序将AVI, Mpeg, VCD, SVCD, DVD, DivX, ASF, WMV,RMVB转换成mpeg4阿! 如何显示TImage与TImageList的图象属性对话框 能不能用delphi控制IIS打开和关闭??? 计算字段的问题,求教!! 初学者求救:如何取得一数的二进制位 源代码发布 请问如何禁止在explorer地址栏中察看本地磁盘和计算机?! 如何实时记录浏览器输入的网址? 关于ApplyUpdates
通常我遇到这个问题,首先我会用udp控件而非tcp控件。其次 udp控件收到消息后,将数据放到一个数据队列里。
一个专门的绘图线程不停检测队列里数据,只要有数据就进行绘图。
但是要注意下并发的问题
不要同时修改这个队列。
udp控件添加 绘图线程读取并删除
同时会出错,锁一下。