多串口的问题及多客户端问题(200分)

  • 主题发起人 主题发起人 illcat
  • 开始时间 开始时间
I

illcat

Unregistered / Unconfirmed
GUEST, unregistred user!
一个多串口卡,都有数据吐出,设计程序时需要使用多线程吗?有无例子?
还有,一台主机需要同时和多个客户端通信?需要使用多线程吗?最好给出例子!
 
当然用多线程了,每个串口一个线程,在线程里进行读/写操作。
多个客户端通信,还是多线程,要不忙不过来,主机与客户端的状态也不好处理
 
要用多线程,这样效率高的多。
 
可以不用,但效果不是太理想。我以前就没用多线程,现在想改了55
 
我看了spcomm的原码,发现她好像也是建立了两个线程,是不是意味着我只需要新建多个SPCOMM就实现了多线成了呢?
Server对多个Client有没有简单的原码,给小弟参考以下。
 
还有一个问题:就是多线程状态下,SPCOMM怎么判断串口读数据超时呢?
 
我现在做的一个项目和你所说的情况极其类似,第一种情况一定要用多线程。第二种情况实际上不用多线程,只需要在SERVER端加一个TSERVERSOCKET,在CLIENT端加一个TCLIENTSOCKET控件就行了。
 
楼上的兄弟,请问你如何在这种情况下处理串口超时问题呢?多线程中使用Timer会不会出问题呢?请指教!
 
我的一个判断串口接受数据超时的函数,主要是判断在一秒钟之内接受缓冲区是否接受到数据。
function CommunicationThread.ReadCommStatues : Boolean;
var
st : int64;
ret : Integer;
begin
ret := sio_iqueue(WhichPort);
st := GetTickCount + 1000;
while ((ret<=0) and (GetTickCount < st)) do
ret := sio_iqueue(WhichPort);
if ret <= 0 then
ReadCommStatues := False
else
ReadCommStatues := True;
end;
 
用 SPComm 是一个不错的建议。
不过。SPComm 在内部是多线程的。但对于使用都而言,也是单线程的。
不过这样解决了多线程与 GUI 之间的问题。

我知道一定有很多人不同意我这种观点。
不过我们可以讨论讨论。
 
比如我动态创建了2个SPCOMM,也不能看作是多线程的读写吗?
QSmile能否给小弟讲解一下,我现在糊涂的很
 
用PCOMM控件吧,实际上是一个动态连接库,很好用我一直用它
 
PCOMM?哪里可以下载?多串口工作效果如果?而且有没有源代码?
 
给个邮箱地址,我发给你
 
xy731@263.net,谢谢你!
 
To:whh_518
能否简单说明一下PCOMM的用法,我记得PCOMM好像是用VC写的吧
 
我已经给你发到邮箱里了,里面有详细的帮助及例子,看看就会了。
 
谢谢给我发一份吧!
webmanger@playicq.com
 
to iloveqq
我已经给你发到邮箱里了
 
有经验的人继续加入讨论也,小弟很需要你们的意见
 
后退
顶部