FoxProforWindows远程拨号通讯功能的设计与实现
目录
1. 设计思想?
2. FoxTools.FLL的导入
3.注册与执行API函数方法?
3. 1注册API函数?
3. 2执行API函数?
4. 调制解调器设计函数?
4. 1 〖ZK(〗打开通讯信道函数OpenComm (
4. 2 [ZK(]传递通讯信息函数WriteComm()\=
4. 3关闭通讯信道函数CloseComm(
5. 设计实例?
S="ATH O"+ch r(13)\=
6.结束语?
正文
计算机远程传输系统是实现不同区域信息联接的信息系统采用以计算机、 调制解调器(MO DEM)并通过电话线路组建设计算机远程传输系统不失为一种廉价而且有效的构造方案。采用这种硬件构造方案必须配套以相应的传输工作软件实现不同区域的信息协调工作。 目前F ox Pro for Windows的流行使之日益成为我们程序设计的首选语言但FoxPro for Windows语言本身并未提供远程拨号通讯的设计功能。本文就此提出一种简单、实用的解决方案。
1.设计思想?
在FoxPro for Windows提供了一类特殊动态连接库
FoxTools.f ll。在这个动态连接库中提供了几十种实用的函数其中最为实用的是它提供了可直接调用Windows API的接口函数 RegFn()和CallFn () 。 Windows在其API提供了丰富的函数调用功能其中包含了如OpenComm() 、 Wr i teComm() 、 Clo se Comm()等实用的通讯函数功能。 FoxToo ls.FLL架起了它们之间沟通的桥梁。基于此我们就可以驾驭这些AP I函数实现我们所需要的通讯功能。
2. FoxTool s.FLL的导入
FoxTool s.FLL提供于FoxPro for Windows的安装目录FOXPROW的一级子目录下在编程过程中我们宜将FoxTool s.FLL放置于应用程序的主程序的开始部分 以便于后继程序的调用。通常对
FoxTools.f ll的导入命令格式如下
SET LIbrARY TO “FOXTOOLS.FLL” ADDITIVE?
如果我们在工程文件PROJECT中能用ADD命令加入库(L ibrary)文件将FoxTools.Fll的置于所生成的EXE文件中就可以避免在提交EXE文件时也必须附带FoxTool s.FLL的繁琐。
3.注册与执行AP I函数方法?
3. 1注册API函数?
采用FoxTools.FLL的RegFn()可以实现Windows API的函数的注册命令格式如下
R e gFn(AP I函数名称 参数类型 返回值类型 API函数库名称)
其中 〖ZK(〗AP I函数名称为我们所要登记的AP I函数名称。
参数类型为所要传递的参数类型共有六种
①I整型?
②L长型?
③S传址方式字符型?
④C传值方式字符型?
⑤F浮点型?
⑥D双精度型?
返回值类型为本函数调用返回值的类型有以下五种
①I整型?
②L长型?
③S传址方式字符型?
④F浮点型?
⑤D双精度型?
API函数库名称为容含所注册API函数库的名称注意需写明包括扩展名在内的全称如GD I.EXE等。
3.2执行API函数?
采用FoxTools.FII的CallFn()可以执行已注册成功的WindowsAPI的函数语法格式如下 ?
CallFn(API函数注册名称 调用参数1 调用参数
2
其中 API函数注册名称为我们在Re gFn()注册API函数后返回的名称。
调用参数为调用该AP I函数所需要的参数。
4.调制解调器设计函数?
Windows API函数中有关通讯的函数原型如下
4. 1 〖ZK(〗打开通讯信道函数OpenComm (
OpenComm(LPSTR 1pCommName WORD wInQueue WORD wOutQueue)
其中 1pCommName为通讯端口名称如LPT1、 COM1等?
wInQueue为所接受的数据队列的长度一般置为1024。
wOutQueue同上?
4.2 [ZK(]传递通讯信息函数Wr i teComm()\=
WriteComm(int nCid LPSTR 1pBuf int Size)\=
其中 nC id为OpenComm()函数返回的信道标志?
1pBuf为传输的缓冲内容?
Size为传输的缓冲大小?
4.3关闭通讯信道函数CloseComm(
CloseComm(nCid)
其中 nC id为OpenComm()函数返回的信道标志。
5.设计实例?
我们根据上述设计思想设计了一段程序说明远程通讯功能的具体实现方法该程序只是简单地完成一个通过电话线拨号功能。
Set Library to "Foxtools.fll" Additive &&打开数据库?
Open=RegFn("OpenComm" "CI I" "I") &&注册Open函数\=
Write=RegFn("Wri teComm" "ICI" "I") &&注册Wri te函数?
Close=RegFn("CloseComm" "I" "I") &&注册Close函数?
*[CDD 19*2]?[CDD 19*2] [HJ1.6mm]
*调用O p en函数打开C OM2通讯端口?
*[CDD 19*2]?[CDD 19*2] [HJ1.6mm]
Com2=Cal lFn(Open "COM2" 100 100)\=
*[CDD 19*2]?[CDD 19*2] [HJ1.6mm]
*设置拨号电话号码?
*[CDD 19*2]?[CDD 19*2] [HJ1.6mm]
Telno="ATTD 3608511"+chr(13)\=
*[CDD 19*2]?[CDD 19*2] [HJ1.6mm]
*调用Wr i t e函数拨号?
*[CDD 19*2] [CDD 19*2] [HJ 1.6mm]
Restcall=CallFn(Write Com2 Telno len(Telno))\=If Restcall0?
Wait Window "传输故障请检查线路!
Endif\=
*[CDD 19*2]?[CDD 19*2] [HJ1.6mm]
*调用Wr i t e函数结束传输?
*[CDD 19*2]?[CDD 19*2] [HJ1.6mm]
S="ATHO"+c hr(13)\=
Restcall=CallFn(Write Com2 S len(S))\=
If Restcall0?
Wait Window "传输故障请检查线路!
Endif\=
Restcall=CallFn(Close Com2)=
If Restcall0?
Wait Window "线路关闭故障请检查线路!
Endif?
6.结束语?
根据上述的设计思想我们可以实现基本的计算机远程拨号通讯功能。文中所述在中文Wind ows 3.2环境下用FoxPro for Windows
2.5b程序设计语言实现并通过。 ?
最近上洛杉矶机房联通CUVIP线路主机的商家越来越多了,HostKvm也发来了新节点上线的邮件,适用全场8折优惠码,基于KVM架构,优惠后最低月付5.2美元起。HostKvm是一家成立于2013年的国人主机商,提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,君选择国内直连或优化线路,延迟较低,适合建站或者远程办公等。以洛杉矶CUVIP线路主机为例,...
瓜云互联一直主打超高性价比的海外vps产品,主要以美国cn2、香港cn2线路为主,100M以内高宽带,非常适合个人使用、企业等等!安全防护体系 弹性灵活,能为提供简单、 高效、智能、快速、低成本的云防护,帮助个人、企业从实现网络攻击防御,同时也承诺产品24H支持退换,不喜欢可以找客服退现,诚信自由交易!官方网站:点击访问瓜云互联官网活动方案:打折优惠策略:新老用户购买服务器统统9折优惠预存返款活动...
RAKsmart怎么样?RAKsmart是一家由华人运营的国外主机商,提供的产品包括独立服务器租用和VPS等,可选数据中心包括美国加州圣何塞、洛杉矶、中国香港、韩国、日本、荷兰等国家和地区数据中心(部分自营),支持使用PayPal、支付宝等付款方式,网站可选中文网页,提供中文客服支持。本月商家继续提供每日限量秒杀服务器月付30.62美元起,除了常规服务器外,商家美国/韩国/日本站群服务器、1-10...