ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:22.42KB ,
资源ID:2412242      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2412242.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(chat拨号.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

chat拨号.docx

1、chat拨号最近在做pppd程序测试,在修改chat脚本pppd-on-dialer文件时出现了一些小问题,虽然chat脚本似乎并不难懂,但是要精通掌握还是需要花费一点精力的。虽然后来chat脚本问题基本已经解决了,但是为了彻底搞懂chat脚本,在baidu、google能用的关键字都用了结果只有找到一个官方的英文说明,就是没有中文。为了以后参阅花了1个白天3个夜晚的时间将文件翻译成中文。英文水平有限,难免有理解偏差之处,抛砖引玉啦:CAT中文帮助 名称 chat调制解调器的自动对话脚本 命令格式 chat options script 描述 Chat程序定义了一个计算机和调制解调器之间对话交

2、流,其主要目的是用来在本地PPPD和远端PPPD程序之间建立连接。 选项 -f 从chat file文件读取chat脚本。这个选项的使用与chat的脚本参数互斥(mutually exclusive)。 使用者必须具有该文件的读取权限。在文件中允许多线(multiple lines)设定。应该以空格或tab键来分隔字符串。 -l 依所指示的锁定文件执行UUCP式的锁定。如果无法建立该文件那么chat程序将会失败。只有在chat程序因为任何原因而执行失败的情况下该锁定文件才会被删除。 如果该脚本执行成功则锁定文件将会留在磁盘上。当pppd程序不再希望使用串行设备时该锁定文件将会被删除。不应该同时

3、使用chat以及pppd的锁定选项来使用锁定文件。他们是互斥的选项而且如果你两个都使用将会引起其中一个或者 另一个程序无法获得所需的锁定而失败。 -t 对于要接收的预期字符串(expected string)设定的超时限制。如果在该时间限制内没有接收到该字符串的话就不发送回复 字符串(reply string)。可以发送一个变通(alternate)的回复或者如果没有变通的回复字符串则该脚本运行失败。 一个失败的脚本会导致chat程序以一个非零错误代码结束。你也可以使用TIMEOUT字符串来指定超时限制。 -r 设置报告字符串输出文件。如果你使用REPORT关键字,由此产生的字符串将写入该文件

4、中。 如果没有使用该选项而且你仍使用了REPORT关键字,输出字符串将用标准错误文件记录。 -e打开echo选项。Echoing使用ECHO关键字在chat脚本的指定位置打开或者关闭。 当echoing被使能,所有调制解调器的输出内容将记录到标准错误文件中。 -E使能环境变量替换chat脚本中的使用标准的$xxx语法的变量。 -v要求chat脚本以冗长(verbose)模式执行。 chat程序将记录chat脚本的执行状态,包括所有从调制解调器中接收到的文字以及发送给调制解调器的字符串。 默认记录到SYSLOG去;记录方法可能会通过-S或者-s标志改变。 -V要求chat脚本使用标准错误的详细模

5、式下执行。 chat程序将记录所有从调制解调器中接收到的文本和发送给调制解调器的字符串到标准错误设备中。 该设备通常是运行chat或pppd程序的本地控制台。 -s使用标准错误。所有由“-v”产生的日志信息和所有的错误信息将发送到标准错误。 -S不使用SYSLOG。默认情况下,错误信息被发送到SYSLOG。-S的使用将阻止由-v产生的日志信息和错误信息发送到SYSLOG。 -T 传递一个任意字符串,通常为一个电话号码,将用于替换发送字符串中的/T替换元字符。 -U 传递第二个字符串,通常是一个电话号码,将用于替换发送字符串中的/U替换元字符。 当对ISDN终端适配器进行拨号时是非常有用的,它需

6、要两个号码。 script如果脚本没有以-f选项指定在文件里那么该脚本会如参数般被包含在chat程序里。 CHAT脚本 chat脚本定义通信过程。一个脚本包含一个或多个“期待对方送出(expect-send)”的配对字符串(pairs of string), 以空格隔开,还有一个选择性的“期待对方送出的候补(subexpect-subsend)”配对字符串,以短线(dash)隔开。像下面这个例子: ogin:-BREAK-ogin: ppp ssword: hello2u2 这一行指示chat程序应该期待“ogin:”这个字符串。如果在所分配的时间间隔内接收登录提示失败的话, 那它就送出一个中

7、断程序(break sequence)给远端然后期待“ogin:”这个字符串。 如果第一个“ogin:”被接收到那么中断程序就不会产生。一旦它接收到该登录提示则chat程序将送出ppp这个字符串然后期待“ssword:”这个提示。 当他接收到到密码提示后,他将会送出密码hello2u2。一般在回复字符串后面会跟着送出一个回车(carriage return)。 在“期待”字符串里除非以/r字符指令(character sequence)指定为必须否则不会期待它的出现。期待系列(expect sequence)应该只包含辨识字符串所需要的信息。 因为它一般是存放在磁盘文件里,它不应该包含可变信息

8、。 通常不会以时间字符串(time strings),网络识别字符串(network identification strings),或者其他变化的数据做期待字符串。为了修正在初始化过程中(initial sequence)可能会传送错误的字符,所以寻找字符串“ogin:”而不是“login:”。 开头的“l”字符可能接收错误而你永远找不到该字符串,即使它已经被系统发送。 同样的原因,脚本寻找“ogin:”而不是“login:”以及“ssword:”而不是“password:”。一个非常简单的脚本看起来可能像这样: ogin: ppp ssword: hello2u2 换句话说,期待 ogin

9、:,发送 ppp,期待 ssword:,再送出hello2u2。在实际使用上,简单的脚本是罕见的,至少在原先的字符串没有被接收时应该把候补期待(subexpect sequences)包括进来。 例如,考虑下面这个例子: ogin:-ogin: ppp ssword: hello2u2 这会是个比前面所用的简单脚本跟好的脚本。它会寻找相同的login:提示,然而, 如果没有接收到的话,会发送出一个单独的返回序列(return sequence)并且再次寻找login:。 如果线路干扰掩盖掉第一个login提示那么接着送出空线路(empty line)经常将会再次产生登录提示。 注释 注释可以嵌

10、入在chat脚本中。注释是一个第一列以“#”字符开头的行。注释行仅仅被chat程序忽略。 如果一个“#”出现在期待指令的第一个字母中,你应该引用该字符串。如果你想等待一个以“#”字符开头的提示符,你必须像这样写: # 现在等待注销的提示和发送字符串# logout 从文件中发送数据(SENDING DATA FROM A FILE) 如果发送字符串以“”符号开头,那么该字符串的其余部分被视为一个文件名称用以获取发送字符串。 如果读取文件的最后一个字符是换行字符,它被删除。该文件可以是一个命名管道(或者FIFO)而不是一个普通文件。 这就提供chat和其他程序通信的一个方法,例如,一个程序提供提

11、示用户和接收用户的密码输入。 ABORT字符串 许多调制解调器以字符串来回报呼叫的状态。这个字符串可能是CONNECTED或者是NO CARRIER或者是BUSY。 通常要是调制解调器连接远端失败的话应该会希望结束脚本。困难的是脚本不会确切地知道它可能接收到那个调制解调器字符串。 在初次尝试时,它可能接收到BUSY然而下次它可能接收到NO CARRIER。这个“失败”字符串可以用ABORT指令指定到脚本中。像下面这个例子一样写到脚本里: ABORT BUSY ABORT NO CARRIER ATZ OK ATDT5551212 CONNECT 这个指令不会期待什么;而且接着发送ATZ这个字符

12、串。对此期待的回应是OK这个字符串。 当它接收到OK时,字符串ADTD5551212就进行拨号。期待字符串是CONNECT。 如果接收到字串CONNECT那么就会执行脚本其余部分。 然而,要是调制解调器发现电话忙线,他将会发送出BUSY这个字符串。 这会使得该字符串符合失败字符命令(abort character)。 这个脚本将会因为它发现一个失败字符串(abort string)而失败(fail)。 如果他接收到的是NO CARRIER字符串,它也会因为同样的原因而失败。 不是可以接收到字符串就是字符串将终结chat脚本。 CLR_ABORT字符串 这个指令允许清除以前的ABORT字符串设置

13、。ABORT字符串被保存在一个预定大小的数组内(在编译时); CLR_ABORT将清除条目的空间回收,以便新的字符串可以使用这些空间。 SAY字符串 SAY指令允许脚本在终端上通过标准错误发送字符串给用户。 如果chat正在被pppd运行,而pppd是作为一个守护进程(同它的控制终端分离)运行,标准错误通常被重定向到文件/etc/ppp/connect-errors中。 SAY字符串必须使用单引号或者双引号。如果字符串中需要输出回车和换行,你必须明确地将它们添加到您的字符串。 SAY字符串可以用来提供那些你使用了“ECHO OFF”但是仍想让用户知道发生什么的脚本段落的进度信息。一个例子是:

14、ABORT BUSYECHO OFFSAY Dialling your ISP./n ATDT5551212TIMEOUT 120SAY Waiting up to 2 minutes for connection . CONNECT SAY Connected, now logging in .0ogin: accountssword: pass$ SAY Logged in OK .0 etc . 这段脚本将目前唯一的SAY字符串发送给用户,所有脚本的详细信息将保持隐藏。例如,如果上面这段脚本运行,用户将看到: Dialling your ISP.Waiting up to 2 minutes for connection . Connected, now logging in .Logged in OK . REPORT字符串 报告字符串类似于ABORT字符串。所不同的是,字符串和所有字符到下一个控制字符如回车,都被写入报告文件。 报告字符串可以用来分离调制解调器的连接字符串中的发送速率和返回该值给chat用户。 报告字符串的分析产生逻辑结合其他字符串过程像寻找期待字符串。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1