基于linux的应用程序接入互联网方法及网络设备的制作方法

文档序号:7704226阅读:166来源:国知局
专利名称:基于linux的应用程序接入互联网方法及网络设备的制作方法
技术领域
本发明涉及网络通信技术领域,特别涉及一种基于LINUX的应用程序接入互联网 方法及网络设备,以便于在LINUX下,应用程序自动选择连接并接入互联网。
背景技术
Linux操作系统有线网络和无线网络都存在的情况下,与互联网的状况可能有如 下表1的几种情况表1 在后三种情况下,应用程序能否连接上门户网站取决于当时LINUX路由表的状 态,由于有线网络和无线网络都存在,路由表中会有两个default选项。LINUX的路由算法 是匹配第一个default选项,当该default为有线网络,而此时有线网络确实能连接互联网 时,应用程序能成功连接上门户网站;反之,如果该default为有线网络,而此时有线网络 不能连接互联网,即使无线网络能够连接上互联网,应用程序也不能成功连接上门户网站。 当default为无线网络时,也是同理。例如,当路由表为如下表2的状态表2 表2中,第一个default为无线网络,第二个default为有线网络,LINUX只匹配 的第一个default,即无线网络,此时,发往互联网的报文会只通过无线网络的路由发送,当 无线网络能连接互联网时,应用程序可以连接上门户网站;当无线网络不能连接互联网,即 使有线网络能够连接上互联网,应用程序也不能成功连接上门户网站。

发明内容
本发明的目的是,针对上述现有技术存在的缺陷提供了一种基于LINUX的应用程 序接入互联网方法及网络设备,以便于在LINUX下,应用程序自动选择通过有线网络或无 线网络连接并接入互联网。本发明的技术方案如下一种基于LINUX的应用程序接入互联网方法,包括将有线路由加入到路由表中,确定该网络为有线连接方式或者将无线路由加入到 路由表中,确定该网络为无线连接方式;通过获取该确定的连接方式下网站IP地址,如果不能获取所述IP地址,则将所述 网络连接方式切换到另一种连接方式,以获取该另一种连接方式下网站IP地址;在获取网站IP地址之后,与网站建立SOCKET连接。其中,该方法进一步包括如果与网站建立SOCKET连接成功并成功将该SOCKET设 置为非阻塞模式,则采用所述非阻塞模式与网站建立连接。其中,将有线路由或者无线路由加入到路由表中之前,进一步包括判断所述路由 表中是否存在有线路由或者无线路由,如果不存在,则从内存中调取所述有线路由或者无 线路由加入到路由表中。其中,在该方法中,如果所述路由表同时存在两种路由,则保留一种路由,将另一 种路由保存在内存中,并从所述路由表中删除所述另一种路由。其中,该方法进一步包括调用连接函数与所述网站建立连接,如果所述连接函数 返回值正确,确认所述网络可以连接互联网。其中,该方法进一步包括调用连接函数与所述网站建立连接,如果所述连接函数 返回值正确,则连接成功,如果返回错误,则连接未成功,则再通过选择函数检测所述连接 是否成功;以及在所述选择函数设置超时时间,如果在设定的时间内超时,则确认所述网络 接入互联网失败。其中,该方法进一步包括如果通过有线或者无线连接方式连接成功后,记录该连 接方式及连接所需的时间,并判断是否尝试过另外一种连接方式,如果没有则,尝试另一种 连接方式,分别记录该另一种连接方式的连接方式和时间;比较有线连接方式和无线连接方式接入网络所需的时间,并确定所需时间少的连 接方式为优选的连接方式。一种网络设备,包括网络连接方式确定单元,用于将有线路由加入到路由表中,确定该网络为有线连 接方式,或者用于将无线路由加入到路由表中,确定该网络为无线连接方式;IP地址获取单元,用于通过获取该确定的连接方式下网站IP地址,如果不能获取 所述IP地址,则将所述网络连接方式切换到另一种连接方式,以获取该另一种连接方式下 网站IP地址;连接建立单元,用于所述IP地址获取单元获取网站IP地址之后,与网站间建立 SOCKET 连接。其中,所述网络设备,还包括路由判断单元,用于判断所述路由表中是否存在有线路由或者无线路由,如果不存在,则从内存中调取所述有线路由或者无线路由加入到路由表中。其中,所述网络设备,还包括函数调用单元,用于如果通过调用确认函数创建SOCKET并成功将所述SOCKET设 置为非阻塞模式,则采用所述非阻塞模式与网站建立连接。其中,所述函数调用单元,还用于调用连接函数与所述网站建立连接,如果所述连 接函数返回值正确,则连接成功,如果返回错误,则连接未成功,则再通过选择函数检测所 述连接是否成功;以及在所述选择函数设置超时时间,如果在设定的时间内超时,则确认所 述网络接入互联网失败。其中,该网络设备还包括记录单元和比较单元,所述记录单元,用于如果通过有线或者无线连接方式连接成功后,记录该连接方 式及连接所需的时间,并判断是否尝试过另外一种连接方式,如果没有则,尝试另一种连接 方式;分别记录该另一种连接方式的连接方式和时间;所述比较单元,用于比较有线连接方式和无线连接方式接入网络所需的时间,并 确定所需时间少的连接方式为优选的连接方式。本发明的有益效果为本发明提供了一种基于LINUX的应用程序接入互联网方法 及网络设备,对于有线网络与无线网络,只要有一个可以连接上互联网,应用程序就能连接 上门户网站。同时,当有线、无线都可以连接上互联网时,自动判断两者间哪条网络连接门 户网站的状况更优,从而使应用程序通过网速更好的网络与门户网站间进行信息交互。


图1为本发明实施例提供的基于LINUX的应用程序接入互联网方法流程图;图2为本发明实施例提供的网络设备结构图。
具体实施例方式本发明提供了一种基于LINUX的应用程序接入互联网方法及网络设备,为使本发 明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细 说明。本发明实施例提供的基于LINUX的应用程序接入互联网方法,应用在LINUX系统 下,将有线路由加入到路由表中,确定该网络为有线连接方式或者将无线路由加入到路由 表中,确定该网络为无线连接方式;通过获取该确定的连接方式下网站IP地址,如果不能 获取所述IP地址,则将所述网络连接方式切换到另一种连接方式,以获取该另一种连接方 式下网站IP地址;在获取网站IP地址之后,与网站间建立SOCKET连接。通过该实施例的 方法,对于有线网络与无线网络,只要有一个可以连接上互联网,应用程序就能连接上门户 网站。同时,当有线、无线都可以连接上互联网时,自动判断两者间哪条网络连接门户网站 的状况更优,从而使应用程序通过网速更好的网络与门户网站间进行信息交互。参照图1, 该基于LINUX的应用程序接入互联网方法包括步骤101、判断路由表中是否存在有线路由或者无线路由,如果不存在,则从内存中调 取有线路由或者无线路由加入到路由表中。如果所述路由表同时存在两种路由,则将保留一种路由,将另一种路由保存在内存中,并从所述路由表中删除另一种路由。在该步骤中,通过对路由设置算法进行描述,在该路由设置算法启动时,首先指明 路由表中是要保留有线路由还是保留无线路由(两者只能保留其一)。如是保留有线路由, 则用户是想把无线路由从路由表中删除,使得路由表的default仅为有线路由。此时,首先 需要查看路由表中是否已经存在有线路由,如果不存在有线路由且内存中也不保留有线路 由的信息,则路由设置失败,算法结束;如果路由表中不存在有线路由,但内存中存有有线 路由的信息,则将内存中的有线路由信息恢复到路由表中,然后进行下一步操作;如果路由 表中存在有线路由,则直接进行下一步操作,查看路由表中是否存在无线路由,如果不存在 无线路由,则设置完毕,算法结束;如果存在,则将该无线路由信息保存到内存中,以便以后 调用,保存完毕后,将该无线路由从路由表中删除,算法结束。保留无线路由的亦是同理。102、将有线路由加入到路由表中,确定该网络为有线连接方式或者将无线路由加 入到路由表中,确定该网络为无线连接方式。该网络选择通过网络选择算法实现的,该算法建立的基础是LINUX下的SOCKET编 程,通过与门户网站间建立连接的SOCKET状态来对网络进行选择。在本实施例中,优选的, 该网络选择算法首先将连接方式设置为通过有线连接方式,然后通过ioctlO库函数获取 该连接方式下本机的IP地址,如果不能正确获取到本机的IP地址,则将网络状态切换到无 线连接方式后重试;否则,调用路由设置算法,将有线网络的路由加入到路由表中,将无线 网络的路由从路由表中删除。103、通过获取该确定的连接方式下网站IP地址,如果不能获取所述IP地址,则将 所述网络连接方式切换到另一种连接方式,以获取该另一种连接方式下网站IP地址。判读是否已经获取到门户网站的IP地址,如未获取到,则调用gethostbyname () 库函数进行获取,如获取失败,说明该网络不能连接到互联网,将连接方式切换到无线网络 后重试;如果获取成功,则保存获取到的门户网站的IP地址,以备下次使用。获取到门户网 站的IP地址后,该网络选择算法尝试通过调用socketO函数与门户网站间建立SOCKET连 接,如果连接创建成功并成功将该SOCKET设置为非阻塞模式,则尝试采用非阻塞模式与门 户网站建立连接cormectO ;否则,将连接方式切换为无线网络,并重试。104、在获取网站IP地址之后,与网站间建立SOCKET连接。在本实施例中是通过调用确认函数如socketO函数创建SOCKET,所述 socket 0函数返回值正确,则SOCKET创建成功。105、如果SOCKET创建成功并成功将该SOCKET设置为非阻塞模式,则采用所述非 阻塞模式与网站建立连接。其中,该步骤105为本实施例的可选步骤,如果通过调用上述socketO函数创建 SOCKET成功并成功将该SOCKET设置为非阻塞模式,则采用所述非阻塞模式与网站建立连 接。建立非阻塞的连接有下面三个用途1.可以在系统做三路握手的时候做些其它事情。 2.可以用这个技术同时建立多个连接,在web应用中很普遍。3.可以缩短连接的超时时间。 应用程序有时需要一个更短的超时,实现办法之一就是使用非阻塞连接。在本实施例中因为SOCKET设置为非阻塞模式,在调用连接函数如cormectO 函数与门户网站建立连接时,该连接函数会直接返回。如果返回成功标志,则该有线网 络可以连接上互联网,算法结束。但是,当在一个非阻塞的TCP套接口上调用cormectO时,connect ()可能立即返回一个EINPR0GRESS错误,表示在建立连接但还没有完成。然后 使用选择函数如selectO函数检测这个连接或成功或失败,在selectO中设置连接 的超时时间,如果select ()超时,则连接失败,将连接方式切换为无线网络,并重试;如果 selectO成功,则用getsockoptO来检查,判断出这个套接口是否是真的连接上,实际上 selectO检查的是它是否可写,而对于可写,是针对以下三种条件任一条件满足时都表示 可写的1)套接口发送缓冲区中的可用控件字节数大于等于套接口发送缓冲区低潮限度 的当前值,且或者i)套接口已连接,或者ii)套接口不要求连接(UDP方式的)2)连接的写这一半关闭。3)有一个套接口错误待处理。因此就需要用getsockopt ()函数来获取套接口目前的一些信息来判断是否真的 是连接上门户网站,如果连接上,则该有线网络可以连接上互联网。106、如果通过有线或者无线连接方式连接成功后,记录该连接方式及连接所需的 时间,并判断是否尝试过另外一种连接方式,如果没有则,尝试另一种连接方式,分别记录 该另一种连接方式的连接方式和时间;107、比较有线连接方式和无线连接方式接入网络所需的时间,并确定所需时间少 的连接方式为优选的连接方式。其中该步骤106和107为本实施例的可选步骤,在本实施例中,优选的,首先设置 连接方式为有线连接方式(在其他的实施例中,也可以首先设置为无线连接方式,则后面 的内容相反),如果进行上述步骤通过有线方式连接网络成功,则记录该有线连接方式及连 接网络所需要的时间,并确定是否进行过无线连接方式;如果未进行过无线连接方式,则将 连接方式切换为无线连接方式,并重试,如果进行过无线连接方式,也记录该无线连接方式 及连接网络所需要的时间,则比较无线连接方式与有线连接方式各花费的时间,确定哪种 连接方式最优。至此,网络选择算法结束。本发明实施例还提供一种网络设备,用于实现上述实施例提供基于LINUX的应用 程序接入互联网方法,参照图2,该网络设备包括网络连接方式确定单元201,用于将有线路由加入到路由表中,确定该网络为有线 连接方式或者将无线路由加入到路由表中,确定该网络为无线连接方式;IP地址获取单元202,用于通过获取该确定的连接方式下网站IP地址,如果不能 获取所述IP地址,则将所述网络连接方式切换到另一种连接方式,以获取该另一种连接方 式下网站IP地址;连接建立单元203,用于所述IP地址获取单元获取网站IP地址之后,与网站间建 立SOCKET连接。进一步的实施例中,该网络设备还包括路由判断单元204,连接在网络连接方式确定单元201之前,用于判断所述路由表 中是否存在有线路由或者无线路由,如果不存在,则从内存中调取所述有线路由或者无线 路由加入到路由表中。进一步的实施例中,该网络设备还包括函数调用单元205,用于如果通过调用确认函数创建SOCKET成功并成功将所述SOCKET设置为非阻塞模式,则采用所述非阻塞模式与网站建立连接。进一步的实施例中,该函数调用单元205还用于调用连接函数与所述网站建立连 接,如果所述连接函数返回值正确,则连接成功,如果返回错误,则连接未成功,则再通过选 择函数检测所述连接是否成功;以及在所述选择函数设置超时时间,如果在设定的时间内 超时,则确认所述网络接入互联网失败。在进一步的实施例中,该网络设备还包括记录单元206和比较单元207,所述记录单元206,用于如果通过有线或者无线连接方式连接成功后,记录该连 接方式及连接所需的时间,并判断是否尝试过另外一种连接方式,如果没有则,尝试另一种 连接方式;分别记录该另一种连接方式的连接方式和时间;所述比较单元207,用于根据记录单元206记录的结果,比较有线连接方式和无线 连接方式接入网络所需的时间,并确定所需时间少的连接方式为优选的连接方式。该实施例提供的网络设备应用在LINUX系统下,将有线路由加入到路由表中,确 定该网络为有线连接方式或者将无线路由加入到路由表中无线连接方式;通过获取该连接 方式下网站IP地址,如果不能获取所述IP地址,则调用gethostbyname ()库函数进行获取 所述IP地址,如果不能,则将所述网络连接方式切换到另一种连接方式,以获取该另一种 连接方式下网站IP地址;在获取网站IP地址之后,通过调用socketO函数创建SOCKET, 并通过cormectO函数与网站建立连接。通过该实例的网络设备,对于有线网络与无线网 络,只要有一个可以连接上互联网,应用程序就能连接上门户网站。同时,当有线、无线都可 以连接上互联网时,自动判断两者间哪条网络连接门户网站的状况更优,从而使应用程序 通过网速更好的网络与门户网站间进行信息交互。应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳 实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术 方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发 明的权利要求范围当中。
权利要求
一种基于LINUX的应用程序接入互联网方法,其特征在于,包括将有线路由加入到路由表中,确定该网络为有线连接方式,或者将无线路由加入到路由表中,确定该网络为无线连接方式;获取该确定的连接方式下网站IP地址,如果不能获取所述IP地址,则将所述网络连接方式切换到另一种连接方式,以获取该另一种连接方式下网站IP地址;在获取网站IP地址之后,与网站建立SOCKET连接。
2.如权利要求1所述基于LINUX的应用程序接入互联网方法,其特征在于,进一步包 括如果与网站建立SOCKET连接成功并成功将该SOCKET设置为非阻塞模式,则采用所述非 阻塞模式与网站建立连接。
3.如权利要求1所述基于LINUX的应用程序接入互联网方法,其特征在于,将有线路由 或者无线路由加入到路由表中之前,进一步包括判断所述路由表中是否存在有线路由或 者无线路由,如果不存在,则从内存中调取所述有线路由或者无线路由加入到路由表中。
4.如权利要求3所述基于LINUX的应用程序接入互联网方法,其特征在于,如果所述路 由表同时存在两种路由,则保留一种路由,将另一种路由保存在内存中,并从所述路由表中 删除所述另一种路由。
5.如权利要求2所述基于LINUX的应用程序接入互联网方法,其特征在于,进一步包 括从所述网站返回确认参数,确认所述网络可以连接互联网。
6.如权利要求2所述基于LINUX的应用程序接入互联网方法,其特征在于,进一步包 括调用连接函数与所述网站建立连接,如果所述连接函数返回值正确,则连接成功,如果 从返回值错误,则连接未成功,再通过选择函数检测所述连接是否成功,以及在所述选择函 数设置超时时间,如果在设定的时间内超时,则确认所述网络接入互联网失败。
7.如权利要求1所述基于LINUX的应用程序接入互联网方法,其特征在于,进一步包括如果通过有线或者无线连接方式连接成功后,记录该连接方式及连接所需的时间,并 判断是否尝试过另外一种连接方式,如果没有则,尝试另一种连接方式,分别记录该另一种 连接方式的连接方式和时间;比较有线连接方式和无线连接方式接入网络所需的时间,并确定所需时间少的连接方 式为优选的连接方式。
8.—种网络设备,其特征在于,包括网络连接方式确定单元,用于将有线路由加入到路由表中,确定该网络为有线连接方 式,或者用于将无线路由加入到路由表中,确定该网络为无线连接方式;IP地址获取单元,用于通过获取该确定的连接方式下网站IP地址,如果不能获取所述 IP地址,则将所述网络连接方式切换到另一种连接方式,以获取该另一种连接方式下网站 IP地址;连接建立单元,用于所述IP地址获取单元获取网站IP地址之后,与网站间建立SOCKET 连接。
9.如权利要求8所述网络设备,其特征在于,包括路由判断单元,用于判断所述路由表中是否存在有线路由或者无线路由,如果不存在, 则从内存中调取所述有线路由或者无线路由加入到路由表中。
10.如权利要求8所述网络设备,其特征在于,包括函数调用单元,用于如果通过调用确认函数与门户网站间建立SOCKET连接成功并成 功将所述SOCKET设置为非阻塞模式,则采用所述非阻塞模式与网站建立连接,如果所述确 认函数返回值正确,则确认所述网络可以连接互联网。
11.如权利要求8所述网络设备,其特征在于,包括函数调用单元,还用于调用连接函数与所述网站建立连接,如果所述连接函数返回值 正确,则连接成功,如果从所述函数返回值错误,则连接未成功,则,再通过选择函数检测所 述连接是否成功;以及在所述选择函数设置超时时间,如果在设定的时间内超时,则确认所 述网络接入互联网失败。
12.如权利要求8所述网络设备,其特征在于,还包括记录单元和比较单元, 所述记录单元,用于如果通过有线或者无线连接方式连接成功后,记录该连接方式及连接所需的时间,并判断是否尝试过另外一种连接方式,如果没有则,尝试另一种连接方 式;分别记录该另一种连接方式的连接方式和时间;所述比较单元,用于比较有线连接方式和无线连接方式接入网络所需的时间,并确定 所需时间少的连接方式为优选的连接方式。
全文摘要
本发明提出了一种基于LINUX的应用程序接入互联网方法及网络设备,该方法将有线路由加入到路由表中,确定该网络为有线连接方式或者将无线路由加入到路由表中,确定该网络为无线连接方式;通过获取该确定的连接方式下网站IP地址,如果不能获取所述IP地址,则将所述网络连接方式切换到另一种连接方式,以获取该另一种连接方式下网站IP地址;在获取网站IP地址之后,与网站间建立SOCKET连接。以便于在LINUX下,应用程序自动选择连接并接入互联网。
文档编号H04L12/28GK101895524SQ20091010739
公开日2010年11月24日 申请日期2009年5月21日 优先权日2009年5月21日
发明者王洋 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1