CN103780479A - 一种网守系统设计方法 - Google Patents
一种网守系统设计方法 Download PDFInfo
- Publication number
- CN103780479A CN103780479A CN201410033463.8A CN201410033463A CN103780479A CN 103780479 A CN103780479 A CN 103780479A CN 201410033463 A CN201410033463 A CN 201410033463A CN 103780479 A CN103780479 A CN 103780479A
- Authority
- CN
- China
- Prior art keywords
- client
- gatekeeper
- database
- user
- udp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种网守系统设计方法,该网守系统设计方法首先是客户端的约定,每客户端都有自己的ID号,每个客户端的ID号都不同,每个客户的UDP的本地端口号固定其唯一表达式为7000+ID,端口号与ID号共同为用户识别特征。客户端在进行网络应用时首先应向网守发送自己的ID以便网守更新IP数据库用以方便其他客户端获得自己的IP地址使被叫通讯得以进行。想获得ID为n的客户端的IP就发n到网守,网守找到对应的IP就回复IP,没有就回复0。本网守程序使用的是UDP协议,只要客户端能用UDP协议收发数据,能修改UDP端口号,就可以利用网守与其它与网守有联系的客户端。
Description
技术领域
本发明网络通讯技术领域,特别是涉及一种网守系统设计方法。
背景技术
目前,TCP/IP是当今应用最广泛的互联网协议,而IP地址是TCP/IP通信协议用来辨识每一系统的网络地址,Internet网络上的每一台主机都分配有一个这样的在全世界范围是唯一的32bit的标识符,就像每一个家有不同地址、每一个手机有不同的号码一样,这样才能知道传输的信号要传输给谁。
在实际通讯中,往往由于不知道对方的IP地址而“联系不上”。网守不失为解决这一难题的较为理想的方案,但是适合单片机通讯的网守暂时还没有。目前市面上开发的相关软件有很有多像“腾讯QQ”,微软MSN”,“网易泡泡”等即时通讯工具,应用的非常广范。而且更新迅速,功能强大,产品日益成熟…但是,它们都要有自己的客户端,还要登陆指定的服务器。而在连接不到服务器的地方(如局域网)也就一无是处。最重要的是客户端必须是PC机,同时还要有Windows,Unix等操作系统的支持,对一些能够用TCP/IP协议通讯的非PC终端(如单片机)来说就毫无价值。
发明内容
本发明的目的在于提供一种网守系统设计方法,旨在解决单片机通能过计算机网络传递数据时不知道IP地址而无法实现信号传输的问题。
本发明是这样实现的,一种网守系统设计方法,首先是客户端的约定,每客户端都有自己的ID号,每个客户端的ID号都不同(0<ID<最大总人数),每个客户的UDP的本地端口号固定其唯一表达式为7000+ID,端口号与ID号共同为用户识别特征。客户端在进行网络应用时首先应向网守发送自己的ID以便网守更新IP数据库用以方便其他客户端获得自己的IP地址使被叫通讯得以进行。想获得ID为n的客户端的IP就发n到网守,网守找到对应的IP就回复IP,没有就回复0。网守端初始化好后进入被动状态,当收到客户端所发的ID后,判断ID用户是不是该用户的ID(ID等于Remote Port)。如果是则更新IP数据库;如果不是,则在检索IP数据库中搜索该ID所对应的IP。找到就把该IP回复给客户端;找不到就回复0;然后再次进入被动状态直到受到下一个客户端所发的ID。
具体软件设计步骤如下:
步骤一,用Microsoft Office Access创建Access数据库并命名为db1.MOD在该数据库中用表向导生成IP data表。并在表中加入ID,IP两个字段并把ID字段设为主键字段。把ID字段的数据类型设定为数字,字段大小设定为5,必添字段属性设为“是”,索引属性设为“有”(无重复);把IP字段的数据类型设定为“文本”,字段大小设定为“20”,必添字段属性设为“是”,索引属性设为“无”(可以重复)。
步骤二,进入Visual Basic6.0后激活菜单“文件/新建工程”在对话框中选择“创建普通应用程序控制(企业版)”由于要使用数据访问对象DAO(DataAccess Object)访问和操作数据库所以要在Visual Basic的工程里面引入DAO3.6Object Library。其具体操作为激活菜单“工程/引用”在对话框中找到Microsoft DAO3.6Object Library,选中后点确定。
步骤三,激活菜单“工程/添加模块”,在对话框中选取“新建”系统会自动命名为Module1双击它进入Code窗口加入以下代码:
Option Explicit
Public db As Database
Public rs2As RecordSet
代码说明:Option Expkicit为强制Visual Basic变量定义。即关闭VB的变量不经定义也能使用的功能。在模块中定义的变量相当于c语言里的全局变量,在主程序的所有子过程,函数中都可用。
步骤四,在form窗体上添加一个Winsock控件系统会自动命名为Winsock1.在form的Code窗口中写入以下代码
代码说明App.Path对象返回当前运行程序所在的路径名,db为DAO数据库对象变量OpenDatabase方法是打开数据库并返回Database对象。该语句中有两个False,前者是将除外性关闭,即如许多个使用者使用数据库;后者是将只读性关闭,即数据库可读可写。随后的几条语句是初始化Winsock控件,通讯协议用UDP协议,绑定本地8100端口。
整个程序是靠Data Arrival事件来驱动,程序的核心是Data Arrival事件响应程序
''说明当DataArrial发生后通常用Getdata方法从缓存中读出数据
''使用UDP协议时DataArrival发生时对方的LocalPort被复制给RemotePort,对方的IP也同样的付给了
RomoteIP。
a=Winsock.RemotePort
If s=(a-8100)Then
''说明:按照约定ID与端口号共同为用户特征,端口号和ID满足约定公式那么用户所发ID为该用户自己的.如果不满足则该ID为对方用户的ID
b=Winsock.RemoteHostIP
Set rs2=db.OpenRecordset("SELECT ipdata.*FROM ipdata WHERE ID="+CStr(s))
''说明∶DAO的OpengRecordset方法返回的是一个Recordset对象。该方法支持Microsoft Jet SQL语言SELECT ipdata.*FROM ipdata WHERE ID=s为SQL查询语句,意思是从ipdata表中查询出ID=s的所有记录.如果没找到Recordset对象的.RecordCount属性等于0;
本发明具有的优点和积极效果是:使用的是UDP协议只要客户端能用UDP协议收发数据,能修改UDP端口号,就可以利用网守与其它与网守有联系的客户端。而不必考虑客户端用的是什么操作系统,客户端是不是PC机。
附图说明
图1是本发明实施例提供的基于Visual Basic的网守程序的原理图。
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下:
图1示出了本发明的基于Visual Basic的网守程序的原理,如图所示,本发明是这样实现的,一种网守系统设计方法首先是客户端的约定,每客户端都有自己的ID号,每个客户端的ID号都不同(0<ID<最大总人数),每个客户的UDP的本地端口号固定其唯一表达式为7000+ID,端口号与ID号共同为用户识别特征。客户端在进行网络应用时首先应向网守发送自己的ID以便网守更新IP数据库用以方便其他客户端获得自己的IP地址使被叫通讯得以进行。想获得ID为n的客户端的IP就发n到网守,网守找到对应的IP就回复IP,没有就回复0。网守端初始化好后进入被动状态,当收到客户端所发的ID后,判断ID用户是不是该用户的ID(ID等于Remote Port)。如果是则更新IP数据库;如果不是,则在检索IP数据库中搜索该ID所对应的IP。找到就把该IP回复给客户端;找不到就回复0;然后再次进入被动状态直到受到下一个客户端所发的ID。软件设计的具体步骤如下:
步骤一,用Microsoft Office Access创建Access数据库并命名为db1.MOD在该数据库中用表向导生成IP data表。并在表中加入ID,IP两个字段并把ID字段设为主键字段。把ID字段的数据类型设定为数字,字段大小设定为5,必添字段属性设为“是”,索引属性设为“有”(无重复);把IP字段的数据类型设定为“文本”,字段大小设定为“20”,必添字段属性设为“是”,索引属性设为“无”(可以重复)。
步骤二,进入Visual Basic6.0后激活菜单“文件/新建工程”在对话框中选择“创建普通应用程序控制(企业版)”由于要使用数据访问对象DAO(DataAccess Object)访问和操作数据库所以要在Visual Basic的工程里面引入DAO3.6Object Library。其具体操作为激活菜单“工程/引用”在对话框中找到Microsoft DAO3.6Object Library,选中后点确定。
步骤三,激活菜单“工程/添加模块”,在对话框中选取“新建”系统会自动命名为Module1双击它进入Code窗口加入以下代码:
Option Explicit
Public db As Database
Public rs2As RecordSet
代码说明:Option Expkicit为强制Visual Basic变量定义。即关闭VB的变量不经定义也能使用的功能。在模块中定义的变量相当于c语言里的全局变量,在主程序的所有子过程,函数中都可用。
步骤四,在form窗体上添加一个Winsock控件系统会自动命名为Winsock1.在form的Code窗口中写入以下代码
代码说明App.Path对象返回当前运行程序所在的路径名,db为DAO数据库对象变量OpenDatabase方法是打开数据库并返回Database对象。该语句中有两个False,前者是将除外性关闭,即如许多个使用者使用数据库;后者是将只读性关闭,即数据库可读可写。随后的几条语句是初始化Winsock控件,通讯协议用UDP协议,绑定本地8100端口。
整个程序是靠Data Arrival事件来驱动,程序的核心是Data Arrival事件响应程序
''说明当DataArrial发生后通常用Getdata方法从缓存中读出数据
''使用UDP协议时DataArrival发生时对方的LocalPort被复制给RemotePort,对方的IP也同样的付给了
RomoteIP。
a=Winsock.RemotePort
If s=(a-8100)Then
''说明:按照约定ID与端口号共同为用户特征,端口号和ID满足约定公式那么用户所发ID为该用户自己的.如果不满足则该ID为对方用户的ID
b=Winsock.RemoteHostIP
Set rs2=db.OpenRecordset("SELECT ipdata.*FROM ipdata WHERE ID="+CStr(s))
''说明∶DAO的OpengRecordset方法返回的是一个Recordset对象。该方法支持Microsoft Jet SQL语言SELECT ipdata.*FROM ipdata WHERE ID=s为SQL查询语句,意思是从ipdata表中查询出ID=s的所有记录.如果没找到Recordset对象的.RecordCount属性等于0;
本网守是针对单片机通讯而设计的所以对客户端的要求必须要很低。客户端不需要专门的客户软件,不需要Windows Unix等操作系统的支持。通讯约定也必须很简单,客户端并不需要用复杂的数据解析程序,只需对原通讯程序稍作修改以适应该约定就行。
本发明具有的优点和积极效果是:使用的是UDP协议只要客户端能用UDP协议收发数据,能修改UDP端口号,就可以利用网守与其它与网守有联系的客户端。而不必考虑客户端用的是什么操作系统,客户端是不是PC机。
以上所述仅是对本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。
Claims (2)
1.一种网守系统设计方法,其特征在于,所述的网守系统设计方法,首先是客户端的约定,每客户端都有自己的ID号,每个客户端的ID号都不同,每个客户的UDP的本地端口号固定其唯一表达式为7000+ID,端口号与ID号共同为用户识别特征;客户端在进行网络应用时首先应向网守发送自己的ID以便网守更新IP数据库用以方便其他客户端获得自己的IP地址使被叫通讯得以进行;想获得ID为n的客户端的IP就发n到网守,网守找到对应的IP就回复IP,没有就回复0;网守端初始化好后进入被动状态,当收到客户端所发的ID后,判断ID用户是不是该用户的ID(ID等于Remote Port);如果是则更新IP数据库;如果不是,则在检索IP数据库中搜索该ID所对应的IP;找到就把该IP回复给客户端;找不到就回复0;然后再次进入被动状态直到受到下一个客户端所发的ID。
2.如权利要求1所述的网守系统设计方法,其特征在于,具体步骤如下:
步骤一,用Microsoft Office Access创建Access数据库并命名为db1.MOD在该数据库中用表向导生成IP data表,并在表中加入ID,IP两个字段并把ID字段设为主键字段,把ID字段的数据类型设定为数字,字段大小设定为5,必添字段属性设为“是”,索引属性设为“有”;把IP字段的数据类型设定为“文本”,字段大小设定为“20”,必添字段属性设为“是”,索引属性设为“无”;
步骤二,进入Visual Basic6.0后激活菜单“文件/新建工程”在对话框中选择“创建普通应用程序控制”由于要使用数据访问对象DAO访问和操作数据库所以要在Visual Basic的工程里面引入DAO3.6Object Library;其具体操作为激活菜单“工程/引用”在对话框中找到Microsoft DAO3.6Object Library,选中后点确定;
步骤三,激活菜单“工程/添加模块”,在对话框中选取“新建”系统会自动命名为Module1双击它进入Code窗口加入以下代码:
Option Explicit
Public db As Database
Public rs2As RecordSet
代码说明:Option Expkicit为强制Visual Basic变量定义,即关闭VB的变量不经定义也能使用的功能,在模块中定义的变量相当于c语言里的全局变量,在主程序的所有子过程,函数中都可用;
步骤四,在form窗体上添加一个Winsock控件系统会自动命名为Winsock1.在form的Code窗口中写入以下代码
代码说明App.Path对象返回当前运行程序所在的路径名,db为DAO数据库对象变量OpenDatabase方法是打开数据库并返回Database对象,该语句中有两个False,前者是将除外性关闭,即如许多个使用者使用数据库;后者是将只读性关闭,即数据库可读可写;随后的几条语句是初始化Winsock控件,通讯协议用UDP协议,绑定本地8100端口;
整个程序是靠Data Arrival事件来驱动,程序的核心是Data Arrival事件响应程序
''说明当DataArrial发生后通常用Getdata方法从缓存中读出数据
''使用UDP协议时DataArrival发生时对方的LocalPort被复制给RemotePort,对方的IP也同样的付给了
RomoteIP。
a=Winsock.RemotePort
If s=(a-8100)Then
''说明:按照约定ID与端口号共同为用户特征,端口号和ID满足约定公式那么用户所发ID为该用户自己的.如果不满足则该ID为对方用户的ID
b=Winsock.RemoteHostIP
Set rs2=db.OpenRecordset("SELECT ipdata.*FROM ipdata WHERE ID="+CStr(s))
''说明∶DAO的OpengRecordset方法返回的是一个Recordset对象;该方法支持Microsoft Jet SQL语言SELECT ipdata.*FROM ipdata WHERE ID=s为SQL查询语句,意思是从ipdata表中查询出ID=s的所有记录.如果没找到Recordset对象的.RecordCount属性等于0;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410033463.8A CN103780479A (zh) | 2014-01-24 | 2014-01-24 | 一种网守系统设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410033463.8A CN103780479A (zh) | 2014-01-24 | 2014-01-24 | 一种网守系统设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103780479A true CN103780479A (zh) | 2014-05-07 |
Family
ID=50572338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410033463.8A Pending CN103780479A (zh) | 2014-01-24 | 2014-01-24 | 一种网守系统设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780479A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552723A (zh) * | 2008-04-03 | 2009-10-07 | 大唐移动通信设备有限公司 | 一种获取andsf实体的ip地址的方法、系统及装置 |
CN101783775A (zh) * | 2009-12-25 | 2010-07-21 | 北京交通大学 | 一种向量网和ip网的网关方式互连方法 |
CN102025848A (zh) * | 2009-09-18 | 2011-04-20 | 鸿富锦精密工业(深圳)有限公司 | 网关及其处理封包的方法 |
EP2338263A1 (en) * | 2008-09-17 | 2011-06-29 | Telefonaktiebolaget L M Ericsson (PUBL) | Ip address discovery |
WO2013166696A1 (zh) * | 2012-05-11 | 2013-11-14 | 华为技术有限公司 | 数据传输方法、系统及装置 |
-
2014
- 2014-01-24 CN CN201410033463.8A patent/CN103780479A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552723A (zh) * | 2008-04-03 | 2009-10-07 | 大唐移动通信设备有限公司 | 一种获取andsf实体的ip地址的方法、系统及装置 |
EP2338263A1 (en) * | 2008-09-17 | 2011-06-29 | Telefonaktiebolaget L M Ericsson (PUBL) | Ip address discovery |
CN102025848A (zh) * | 2009-09-18 | 2011-04-20 | 鸿富锦精密工业(深圳)有限公司 | 网关及其处理封包的方法 |
CN101783775A (zh) * | 2009-12-25 | 2010-07-21 | 北京交通大学 | 一种向量网和ip网的网关方式互连方法 |
WO2013166696A1 (zh) * | 2012-05-11 | 2013-11-14 | 华为技术有限公司 | 数据传输方法、系统及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102209076B (zh) | 服务端与客户端之间的交互方法和交互系统 | |
CN103733148A (zh) | 能源管理网关和过程 | |
CN109635019B (zh) | 请求处理方法、装置、设备及存储介质 | |
US20140019616A1 (en) | Systems and methods for business network management discovery and consolidation | |
AU2011349613B2 (en) | Generating maps of private spaces using mobile computing device sensors | |
CN103747004A (zh) | 物联网平台通信协议的实现方法 | |
CN110162994A (zh) | 权限控制方法、系统、电子设备及计算机可读存储介质 | |
US11184231B1 (en) | Device connector service for device and management service integration | |
US10970142B2 (en) | Transforming plug-in application recipe variables | |
CN102567026A (zh) | 移动应用构建系统和移动应用构建方法 | |
CN106789227A (zh) | 一种上网行为分析方法及上网行为分析装置 | |
KR20230010695A (ko) | 차별화된 프라이빗 빈도 중복 제거 | |
CN102034144A (zh) | 用于在场的群组组成算法 | |
CN110943883B (zh) | 网络流量统计方法、系统、网关及计算机可读存储介质 | |
CN104598622A (zh) | 一种数据修改日志的实现方法和系统及应用服务器 | |
CN107222575A (zh) | 实现工控设备间opc通信的方法 | |
CN109844732B (zh) | 使用随时间的用户转换来确定ip地址的地理定位 | |
DE112018005283T5 (de) | Deduplizierung für dateien in einem cloud-computing-speicher und in datenübertragungswerkzeugen | |
CN109413224A (zh) | 报文转发方法和装置 | |
Jin et al. | IoT device management architecture based on proxy | |
CN107493251A (zh) | 一种登录目标服务器的方法及终端 | |
WO2020160067A1 (en) | Configurable system for resolving requests received from multiple client devices in a network system | |
CN103780479A (zh) | 一种网守系统设计方法 | |
CN111045928A (zh) | 一种接口数据测试方法、装置、终端及存储介质 | |
CN110300222A (zh) | 一种短信显示方法、系统及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140507 |