请高手讨论一个问题(自动拨对方的电话,然后连数据库)!(50分)

  • 主题发起人 主题发起人 wangxunli
  • 开始时间 开始时间
W

wangxunli

Unregistered / Unconfirmed
GUEST, unregistred user!
你门说循环自动拨号传输数据会稳定吗(就是那种直接拨对方的计算机的那种)?
我就想不是太稳定。因为比如手动拨号还要拨号几次,毛的驱动也很容易丢失,
还需要手工装驱动,还要实现无人职守?你门说能行吗?
怎么实现如果没有
驱动程序,可以自动安装驱动程序?还有怎么收到占线的消息??
 
拨号程序很多,占线可以判断出来,至于自动安装驱动那是不行的
我曾做了一个简单的拨号程序,源程序如下:
StrPCopy(ATCommand,'ATZ'+#13); //初始化
WriteFile(ComList[Param.Port],ATCommand,StrLen(ATCommand),WSize,Nil);
StrPCopy(ATCommand,'ATE0'+#13);
WriteFile(ComList[Param.Port],ATCommand,StrLen(ATCommand),WSize,Nil);
StrPCopy(ATCommand,'ATV1'+#13);
WriteFile(ComList[Param.Port],ATCommand,StrLen(ATCommand),WSize,Nil);
StrPCopy(ATCommand,'ATQ0'+#13);
WriteFile(ComList[Param.Port],ATCommand,StrLen(ATCommand),WSize,Nil);
PurgeComm(ComList[Param.Port],PURGE_RXCLEAR);
StrPCopy(ATCommand,'ATDT'+StrPas(Param.No)+#13); //拨号
WriteFile(ComList[Param.Port],ATCommand,StrLen(ATCommand),WSize,Nil);
DTime:=timeGetTime+Param.Time; //拨号时间
Memory:=TMemoryStream.Create;
While DTime > timeGetTime Do
Begin
ClearCommError(ComList[Param.Port],WSize,@State);
if State.cbInQue>0 Then
Begin
GetMem(Recv,State.cbInQue);
ReadFile(ComList[Param.Port],Recv^,State.cbInQue,WSize,Nil);
Memory.Write(Recv^,State.cbInQue);
FreeMem(Recv,State.cbInQue);
Memory.Write(TerminateByte,1);
Memory.Seek(-1,soFromEnd);
if StrPos(PChar(Memory.Memory),'CONNECT')<>Nil Then //已连接
Begin
StrPCopy(ATCommand,'CONNECT');
Break;
End;
if StrPos(PChar(Memory.Memory),'BUSY')<>Nil Then //忙音
Begin
StrPCopy(ATCommand,'BUSY');
Break;
End;
if StrPos(PChar(Memory.Memory),'NO DIALTONE')<>Nil Then //无拨号音
Begin
StrPCopy(ATCommand,'NO DIALTONE');
Break;
End;
if StrPos(PChar(Memory.Memory),'NO CARRIER')<>Nil Then //无载波
Begin
StrPCopy(ATCommand,'NO CARRIER');
Break;
End;
End;
End;
 
我用的是ras编程,请问收到什么样的消息,是代表全部连接?
还有为什么拨号的时候:有的让加入域,在程序中怎么自动实现?
谢谢!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部