主题:EM9000拨号问题

  共有34052人关注过本帖    
lijianhua
1楼


EM9000拨号问题  发帖心情 Post By:2010-4-22 9:56:00   [只看该作者]

使用的EM9000主板和GTM900-B无线模块,程序拨号调用EM9000_GPRS_Dial和EM9000_ISA_DLL类库,现在问题是拨号可以拨上去,但是不能很好的监控实时在线状态(如果掉线重拨),造成数据发送不出去。
现在采用的判断方法代码如下(只考虑到IP来判断):
public bool IsOnline()
        {
            IPAddress[] addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
            foreach (IPAddress address in addressList)
            {
                if ((!IPAddress.IsLoopback(address) && (address != IPAddress.IPv6None)) && ((address != IPAddress.None) && address.ToString().StartsWith("10.")))
                {
                    return true;
                }
            }
            return false;
        }
程序中有调用coredll.dll的RasDial方法的一段代码:
 [DllImport("coredll.dll")]
        public static extern uint RasDial(IntPtr dialExtensions, IntPtr phoneBookPath, IntPtr rasDialParam, uint NotifierType, IntPtr notifier, ref IntPtr pRasConn);

请教该方法的返回值有何意义,可否作为判断的标识?或者是否还有其他的有效方法可以准确有效的判断GPRS在线情况?谢谢!

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lqk
2楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2010-4-22 10:34:00   [只看该作者]

通过获得自身IP是一个方法,但并不完全可靠,可以通过收发心跳包来判断。
RasDial()是阻塞的同步拨号函数,返回时要么拨号成功,要么失败,具体可看一下MSDN,如果想监视拨号过程,可以考虑采用异步拨号。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

EM9000拨号问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: