关于用modem拨号? (100分)

  • 主题发起人 主题发起人 LitterTiger
  • 开始时间 开始时间
L

LitterTiger

Unregistered / Unconfirmed
GUEST, unregistred user!
我用mscomm
设置comport:4 (我的modem在com4)
其他不变
程序:com.potoen:=true;
com.output:='atdt12345';
为何没有拨号音?
用“echo atdt12345>com4"可以
急!!
加问如果拨号两modem连接之后,怎么用socket发送东西??????
 
不知道,看看.
 
记的不太清楚了,自己多试一下吧
 
用电话拨号两猫相连,是连上直接法东西就行,还是另外还有协议??
我的应用是股票的远程委托。
 
建议用turbopower的async,功能太强大了,我用了1/3不到。
 
我也想知道,请说的详细一点.
 
请大家继续讨论!
 
两modem相连有几种方法?
什么可以利用socket传输?
 
建议使用CPORT控件,我以前写过一个Modem拨号的程序,用的就是CPORT。
 
以前正好写过相关的程序,用的vb。vb的示例里面有相关代码。其他资料可以参考at命令集
Private Sub TestModemPort()
' 保存输入子串的缓冲区
Dim Instring As String
Dim ModemPortNumber As Integer
Dim i As Integer '循环变量
Dim ModemOk As Boolean
'以下代码测试MODEM端口
For i = 1 To 8
On Error GoTo Errorhandle:
TimeCount = 0
MSComm1.CommPort = i
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控件读入整个缓冲区。
MSComm1.InputLen = 0
' 打开端口。
MSComm1.PortOpen = True
' 将 attention 命令送到调制解调器。
MSComm1.Output = "ATV1Q0" & Chr$(13) ' 确保
' 调制解调器以"OK"响应。
' 等待数据返回到串行端口。
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
If TimeCount = 2 Then Exit Do '超时退出测试下一端口
If InStr(Buffer$, "OK" & vbCrLf) Then ModemOk = True
Loop Until InStr(Buffer$, "OK" & vbCrLf)
' 从串行端口读 "OK" 响应。

' 关闭串行端口。
MSComm1.PortOpen = False
If ModemOk Then ModemPortNumber = i: Exit For
Next
If Not ModemOk Then MsgBox "没有检测到MODEM,请检查是否已正常连接MODEM,或者是否MODEM正在使用"
Exit Sub
Errorhandle:
Resume Next
End Sub

Private Sub Dial(Number$)
Dim DialString$, FromModem$, dummy

' AT 是贺氏兼容 ATTENTION 命令并且要求发送命令到调制解调器。
' DT 意味着"音频拨号。" 这个拨号命令用于音频, 相对的是脉冲 (DP = 脉冲拨号)。
' Numbers$ 为要拨的电话号码。
' 分号告知调制解调器拨号后返回命令模式(这一点很重要)。
' 一个回车, vbCr, 当发送命令到调制解调器时被要求。
DialString$ = "ATDT" + Number$ + ";" + vbCr

' 通信端口设置
' 假设鼠标器连接到 COM1, 那么通信端口设置为 COM2
'MSComm1.CommPort = 4
MSComm1.Settings = "9600,N,8,1"

' 打开通信端口
On Error Resume Next
MSComm1.PortOpen = True
If Err Then
MsgBox " 更改 CommPort 属性使其使用其他COM口"
Exit Sub
End If

'清空输入缓冲区。
MSComm1.InBufferCount = 0

' 设置逗号暂停时间
MSComm1.Output = "ATs08=2" & vbCr
Do
dummy = DoEvents()
' 如果缓冲区中有数据,则把它读出来。
If MSComm1.InBufferCount Then
Buffer$ = Buffer$ + MSComm1.Input
' 检查 "OK"。
If InStr(Buffer$, "OK") Then
' 提醒用户摘电话。
Beep
' MsgBox "请您摘电话然后按“回车”键或单击“确定”"
Exit Do
End If
End If
Loop

MSComm1.InBufferCount = 0
MSComm1.Output = DialString$
' 等待从调制解调器返回"OK" 。
Do
dummy = DoEvents()
' 如果缓冲区中有数据,则把它读出来。
If MSComm1.InBufferCount Then
FromModem$ = FromModem$ + MSComm1.Input
' 检查 "OK"。
If InStr(FromModem$, "OK") Then
' 提醒用户摘电话。
Beep
MsgBox "请您 先 摘电话然后按“回车”键或单击“确定”"
Exit Do
End If
End If

' 用户是否选择“取消”?
' If CancelFlag Then
' CancelFlag = False
' Exit Do
' End If
Loop

' 断开与调制解调器的连接。
MSComm1.Output = "ATH" + vbCr

' 关闭端口。
MSComm1.PortOpen = False
End Sub
 
看看《DELPHI串口编程》。
 
多人接受答案了。
 
后退
顶部