调制解调器的连接和通讯

希望的梦想 2003-04-02 01:48:14
各位大侠:
小弟最近学习网络编程时,遇到一个问题,要求用调制解调器实现两台计算机的通讯,两台机子上都装有Modem,通过电话线,一台机子拨号登陆到另一台机子,每台机子都配有电话,请问如何作连接程序,如果连接成功的话,怎么得到对方机子的IP地址,IP地址是固定的还是自动获取的?

...全文
95 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
heidongzhiling 2003-04-06
  • 打赏
  • 举报
回复
我做的是传真平台,也是通过公共电话网进行联系,也要用到at命令,我用的是组件,是turbopower公司的,不知道你们有没有用过。
我们大家可以通过email联系:daizhouquan@hotmail.com
希望的梦想 2003-04-05
  • 打赏
  • 举报
回复
那我试试看,
hhbird 2003-04-04
  • 打赏
  • 举报
回复
逗号吗,那我试试。

不过。。。。。。怎么这么巧啊。
我们组做的毕业设计是高速公路收费的,我目前做的也是客户机和数据库机通信。

呼叫对方Modem,接通了以后对方Modem会返回信号。

如果MODEM向PC的回应字符串中含有"Connect"或CDHolding属性值变为True(检测出载波),则表示已与远方MODEM连机了,此时可以传输数据。

这个时候就是纯粹串口传输数据,Modem不再理会AT命令什么的了,只是单纯作为两方机器串口间的通信。

格式就看串口怎么设置的了,你设置成16进制就传16,设成2进制就传2进制。


上面都是我查资料总结理解的,不知道是不是有地方不对。

因为毕业设计是基于Linux的,做Windows下的只是练习,所以也没彻底做完。
现在我开始做Linux下的了,控件和TAPI是没法用了,希望Linux API不会太怪异。
希望的梦想 2003-04-04
  • 打赏
  • 举报
回复
to hhbird(机动菜鸟) :
我明白了,现在我做的是客户机与数据库服务器之间的通讯,数据库和客户端连接上以后,如何传递数据,数据的格式如何确定?
“输入卡号后要等两三秒再输入密码,再等两三秒输入对方电话号码”中的等待两三秒在以前拨号上网的时候,用201,拨号如下:“201,卡号,密码,,,,163”,多加几个“,”号,你试试看。
hhbird 2003-04-04
  • 打赏
  • 举报
回复

没有IP地址,联系靠的就是电话号码。

AT拨号终于可以拨了,不过又有问题了。我用的不是程控电话,是校园网电话,必须输入卡号密码的那种。
输入卡号后要等两三秒再输入密码,再等两三秒输入对方电话号码,这个等2、3秒怎么实现?
AT命令怎么写?
e4snake 2003-04-03
  • 打赏
  • 举报
回复
不需要ip地址。因为只能使用at命令来进行通讯
mscom的事件里面有数据到达的。
如果发现了就直接读取数据就可以了啊
可以设定数据缓冲区的大小的
很简单的
希望的梦想 2003-04-03
  • 打赏
  • 举报
回复
to hhbird(机动菜鸟) :
假设连接已经建立,如何得到IP地址?
hhbird 2003-04-03
  • 打赏
  • 举报
回复

巧了,我也在学做这个。

不过目前我知道的是两台终端通过Modem连接,是通过电话网,没有进Internet网,没有IP地址的。

一条终端通过Modem拨另一台Modem连接的电话号码,然后双方建立连接,再进行串口的直接通信。
我现在就是在用AT命令对Modem拨号这卡住了。
我用的是BCB,MSComm控件,串口可以发送数据,但发送什么AT命令不清楚。
找到一些VB的资料,改来改去也不能在BCB里面用。

1、首先是通信参数设置,主要就是可以设置端口号,波特率,数据位,停止位,奇偶校验位及设置硬件握手协议,这些设置较为简单。

2、向MODEM发出DTR(已准备好)信号,如下例程:
If MSComm1.PORTOPEN Then
MSComm1.DTREnable=True
Else
MSComm1.DTREnable=False
EndIf

3、打开时向MODEM发出一些命令来设置参数,其中S0=n(n>=1)自动应答.n为响铃次数;E0/E1关闭/打开命令字符回应;Q0/Q1modem返回/不返回结果码;M0/M1关闭/打开MODEM扬声器,例程如下:
If MSComm1.PORTOPEN Then
Do While not MSComm1.CTSHolding : loop
Outstring="ATS0=1E1Q0M0"+Chr(13)
MSComm1.Output=Outstring
End if

4、进行拨号设计,需向MODEM发出ATDT命令,如下语句:
MSComm1.Output="ATDT"+Trim(“电话号码”)+Chr(13)

5、拨号以后发送数据文件,程序要循环等待并随时判定是否接通。如果MODEM向PC的回应字符串中含有"Connect"或CDHolding属性值变为True(检测出载波),则表示已与远方MODEM连机了,此时可以传输数据。


顺便请问哪位高手知道BCB里面怎么写AT命令部分的语句的?

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧