modem拨通以后不出现connect,收不到数据,对方挂机后这些就都出来了,是怎么回事?(200分)

  • 主题发起人 主题发起人 FreeFly
  • 开始时间 开始时间
F

FreeFly

Unregistered / Unconfirmed
GUEST, unregistred user!
甲乙两台计算机用modem通过小交换机进行连接,甲来拨号,乙用ATS0=1设置为自动应答方式,甲拨通乙后出现connect 33600,很奇怪乙并不出现这些,然后甲发给乙的东西一点也看不到,乙发给甲的却能立刻看到,如果甲来挂机,乙就会立刻出现上面应该出现的东西,但如果由乙来挂机,则这些不会出现。
有没有大侠碰到过这样的问题?
两台机器用的都是内猫,甲为xp,乙为2000pro,都通过串口控件用at命令控制modem,控件不是mscomm,也不是spcomm,是cport,不知大家有用过吗?
还有一个奇怪的现象,甲这台机器上的猫用ATS0=1设置为自动方式竟然不管用,也不知道是怎么回事?
两台机器如果都用超级终端可以连的通,发送的数据双方都可以立刻接收到。
 
你的modem设置的初始参数是多少. 后面加 /N0 N0试试.
建议你看看MODEM的指令与参数集.调MODEM的初始参数.

因为你用的交换机定没有电信的好.
我这里有一个程序,附源代码.DELPHI+SPCOMM的.可供你参考.
地址在:http://www.ufoit.com/bbs/viewtopic.php?t=12
 
我用的参数是ATX&C1&D2M0
指令和参数我也看了,好像没有看到和我遇到这种情况相关的,因为第一次做,有些东西不大理解。
你的例子我来试试
 
你的例子我试过了,从乙往甲拨,pass了,但是甲往乙拨fail了,乙上面显示no carrier
 
本以为会是交换机的问题,但是超级终端是可以连通的,超级终端是用什么来控制modem的呢,tapi?
 
你再在commodem.ini里做一些修改:

[Modem]
String=AT E1 S0=1 L3 /N0 N0
//N0后面是阿拉伯数字0。 意思看指令与参数集。我有点不记得了,只记得这是与缓冲有关的设定
你也可以加其它的例如:+MS=V90,1,11400,56000 但你的交换机要好。这是初始字串的设置。反正你就找MODEM指令与参数集看看,加在这里不信的调试,直到双方通了。注意能找到厂商MODEM开发手册最好不过了。例如要注意一些通用情况,PC-TEL芯片MODEM的上面那个指令写成+MS=V90,而SmartLink芯片MODEM的,这条指令得写成+MS=90.
..
Combps=9600
//改一下连接速度。9600或4800都可以。不要那么快。

用Tapi是可以,但是达不到精确控制MODEM行为的程度。可能是我了解太少吧。我用DELPHI+TAPI写过一个单机双MODEL的传输测试的程序。稳定性还行。如果需要,就提醒我就放在我的论坛上。因为得找找,那个TAPI部分代码是研究一个TAPI LIB得来的。所以没放在“心上”。(一大群就是让你CALL API。真让我不好受。)

还有MODEM与MODEM之间兼容性的问题你也得考虑。同种MODEM间的互联,也许会好点。

再一个注意一下MODEM与串口之间的速度,以及MODEM与交换机连接速度(及另一方MODEM)问题。
 
对了,忘答你了。超级终端就是以TAPI实践的。
不过,你可以用串口方式控制MODEM与TAPI程序连接。
也就是说这台计算机的MODEM用串口方式控制,另一方用TAPI方式控制。双方可实践程序连接。

我使用的情况是TAPI要稳定,但是,一出现问题。你死活控制不住! 因就只是一群API让你做。没有串口控制那样灵活与直接。连接速度用API也难控制。
 
最后说一下,MODEM与MODEM+交换机对连,交换机的角色很重要!你不信换不用种的交换机试试。结果可能会让你“想不通”。
 
我想换一个小交换机来试试
 
虽然没有完全解决,还是要多谢bini,结束了。
 
后退
顶部