admin 管理员组

文章数量: 887021


2023年12月22日发(作者:graphics620显卡)

第21卷 第1期 V01.21 No.1 电子设计工程 Electronic Design Engineering 2013年1月 Jan.2013 基于Socket网络编程的 远程物流防伪系统的设计 陈雅静 (贵州大学理学院,贵州贵阳550025) 摘要:为了实现数据采集终端与远程服务器即时通信的需求,提出了一种基于Socket网络编程的远程物流防伪系 统。该系统在Visual Studio结合SQL Server的开发平台下.采用Socket套接字以及GPRS无线通信的方式实现数据 采集终端对远程服务器的查询功能。运行结果表明:该系统具有操作方便、使用成本低和安装容易等多项优点。在商 品物流中.用户能快速、及时查询到商品的物流信息以及真伪信息,该系统对企业物流跟踪有着重要的意义。 关键词:Socket;Visual Studio;物流;远程服务器 中图分类号:rrP314 文献标识码:A 文章编号:1674—6236(2013)O1—0153—04 Design of remote logistics security system based on Socket CHEN Yaqing (College ofScience ofGuizhou University,Guiyang 550025,China) Abstract:In order to satisfy the requirement of the remote communication of data collector and server,the design of the remote logistics security system based on Socket is desined gin this paper.The system is used to the immediately query of data collector and server use socket through GPRS.The software system adopts the Visual Studio software with SQL Server software as development environment.Through the test roB showed that the system has the advantages of convenient operation,low cost,easy installation and many other advantages,in addition,the system has great signiifcance that the user can quickly, timely to query the logistics information and authenticity of the commodity. Key words:Socket;Visual Studio;logistics;remote server 随着当今社会的发展。假冒伪劣产品屡禁不止,甚至还 有进一步蔓延之势,假冒伪劣产品的数量和范围也呈扩大趋 势。因此.在商品物流中加大查询力度,以实现商品的实时跟 踪已势在必然。 随着电子及自动化的飞速发展.拥有GPRS无线采集模 集器扫描完产品上附带的编码信息后,通过socket套接字所 指定服务器的IP及端口和GPRS无线网络将采集的编码信 息发送给远程的服务器端。远程服务器端通过检索其数据 库.将该商品相应的查询相关信息返回给采集终端。最终在 采集终端将该商品的相应信息显示出来,这样便实现了采集 终端对商品的即时查询功能。 块功能的智能采集器已随处可见,很多用户已经开始陆续使 用智能采集器收集产品条码信息。虽然智能采集终端本身有 自带的GPRS无线传输系统.但这些系统只是提供实际用户 一圃t  个功能的扩展,其功能不够完善。并不能满足所有用户的 选择采集器的条码查询主界面 扫描商品的条码信息 否查询该商信 实际需要,这使得智能采集终端不能充分发挥其智能化。因 此.笔者提出了利用socket网络编程来实现远程物流真伪查 询系统。 笔者充分针对用户需求.利用socket网络编程和智能采 集终端的GPRS无线传输功能,开发出满足用户需要的远程 物流防伪系统。用户只需要下载该系统,通过简便、美观的操 商品信息经GPRS传送到服务器端 监听到该采集器的信息 服务器将要查询的商品编码与数据库对照 作界面。便可实现智能采集终端的即时查询功能,有效地实 现了商品信息的防伪查询以及即时跟踪物流信息等功能。 蟊 否存在该商昌==)三 、 ≥ ,一 — 1总体设计 该远程物流查询系统流程图如图1所示。当移动终端采 收稿日期:2012—07—18 稿件编号:201207109 上是 将该商品的相关信息经l I返回“无该商品信息,请与 GPRS发送到采集终端I I厂商联系”到采集终端 图1系统流程图 Fig.1 Flow chan of the system 作者简介:陈雅静(1987一),女,河南荥阳人,硕士研究生。 研究方向:电路系统设计自动化。 —.153- 

《电子设计工程12013年第1期 一2 系统环境 2.1软件开发环境 样方便。ServerSocket用于服务器端,而Socket是建立网 络连接时使用的。在连接成功时,应用程序两端都会产生 一个Socket实例,通过操作这个实例,完成所需的会话。对 于一个网络连接来说,套接字是平等的,并没有差别,不因 为在服务器端或在客户端而产生不同级别。不管是Socket 本系统是在Visual Studio 2010结合SQL Server 2008的 环境下开发而成.所选用的开发语言是由微软公司开发的 visual basic语言以及功能强大的SQL语言。 还是ServerSocket,它们的工作都是通过SocketImpl类及其 子类完成 通过Visual Studio 2010框架 能够提供对SQL Server 2008的高效访问.从而为数据库应用开发提供支撑。 Microsoft Visual Studio 2010通过整合的开发环境.让软件开 发人员以熟悉技术及工具一致的开发方式,创建各个应用平 Socket提供了两种数据传输的协议,分别为TCP和 UDP协议:TCP(传输控制协议)提供的是面向连接、可靠 的字节流服务。当客户和服务器彼此交换数据前,必须先 台。从模型及构架设计、程序的撰写及管理、查错、测试到部 署,所有的工作一气呵成,这些工作都在Visual studio 2010 中完成_l-2]。 2.2智能采集器的GPRS无线采集模块 目前市场上大多数采集器都已具备了GPRS无线采集模 块的功能。该系统所采用的采集器为新大陆科技集团生产的 P3980系列产品。其GPRS无线采集模块如图2所示。该模块 支持TCP/UDP两种通信协议;具有Rs485和RS232的通信 功能,通过485接口或232接口能方便地采集总线上挂接的 各种仪器数据:具有4路开关量输入和4路开关量输出功 能;拥有IM字节不掉电数据保存空间,主要用于存储采集到 的模拟量和开关量数据;拥有高精度的模拟量采集;具有通 过移动电话(手机)短信下载通信参数功能.例如通信中用到 的IP地址等等;具有透明数据传输功能;具有支持动态域名 解析功能,节约了采用固定IP所带来的昂贵费用;具有商店 自动重新连接功能,适合远距离无人值守环境。 陌 疆 Rs485和Rs2 32通信单元H’’ { GPRs无线通信单元卜_J 图2 GPRS无线采集模块 Fig.2 Modular of GPRS wireless acquisition 2.3网络环境 本系统所采用的网络环境为GPRS无线网络。GPRS是 一种采用分组交换模式传输数据及信令的高效率方式。它克 服了电路交换型数据传输速率低、资源利用率差的缺陷。利 用GPRS进行数据传输具有资源共享、频率利用率高、数据 双向通信传输率高、接人时间短、永远在线等优点。智能采集 器可通过GPRS无线网络将商品条码信息发送给远程服务 器。在本系统中,远程服务器可同时监听处理多台智能采集 器终端同时发送产品编码信息_1。 3 Socket网络编程 Socket是TCP/IP的编程接口.提供了大量的系统调用 构成了网络程序的主体,是标准的C/S模式编程。在操作 系统中,它属于文件系统的一部分,网络通信可以被看作 是对文件的读取,使得我们对网络的控制和对文件的控制 一】54- 在双方之间建立一个TCP连接,之后才能传输数据。TCP 提供超时重发,丢弃重复数据,检验数据,流量控制等功 能.保证数据能从一端传到另一端;UDP(用户数据报协 议)是一个简单的面向数据报的运输层协议。UDP不提供 可靠性,它只是把应用程序传给IP层的数据报发送出去, 但是并不能保证它们能到达目的地。由于UDP在传输数 据报前不用在客户和服务器之间建立一个连接,且没有超 时重发等机制.故而传输速度很快_3J。因为TCP协议不但 能保证数据的正确性而且保证数据顺序正确.而UDP协 一 议不能保证,所以TCP协议更符合本系统中传输采集终 端所采集的编码的要求,因此本系统采用TCP协议。基于 TCP协议的通信流程图如图3所示。 图3 TCP协议的通信流程图 Fig.3 Flow chart of the TCP protocol 在该流程图中,Socket()用于建立流式套接字;Bind()将 套接字与本地地址相连;Listen()通知TCP,使服务器准备好 接受连接;Accept()用于接收连接;Read()、Write()这两个函 数分别用于套接字上读、写数据,直到数据交换完;Close()用 来关闭套接字;Connect()用于将套接字与远地主机连接。其 中,Connect()、Accept()、Read()、Write()函数等都有可能造 成阻塞,阻塞模式是Socket的缺省方式。客户端和服务器的 连接有一个3次握手机制,即服务器调用Socket()、Bind()、 Listen()完成初始化后,调用Accept()阻塞等待,处于监听端 口的状态。而客户端调用Socket()初始化后,调用Connect() 发出SYN段并阻塞等待服务器的应答,服务器应答一个 SYN—ACK段,客户端收到后从Connect()返回,同时应答一 个ACK段。服务器收到后从Accept()返回。 

陈雅静基于Socket网络编程的远程物流防伪系统的设计 4代码的设计 4.1服务端 在本系统中.一个服务端可能不只为一个智能采集终端 提供服务。当N(N为正整数)台智能采集终端发送请求时,服 务端必须做出异步响应,因此,一般在处理服务端的监听时 会使用多线程的方法。正因使用了多线程的方法,控制显示 控件将接受到的字符显示就必须使用委托的方法:而当程序 无法得知从另外一个线程来控制其他线程的合法性,会认为 程序有错误.故系统中采用了Delegate类,该类用于派生委 托类型,派生前需要明确派生的委托和需要委托的函数输入 值相匹配。 该系统可监听最多100个同时的客户端.通过与SQL 查询语句,可查询出该产品的编码、仓库等信息。Socket套 接字在笔者自定义的waitdata()函数中实现,下面即给出 了waitdata()函数的代码,来讲解整个Socket编程,其中部 分代码后面有详细的注释。查询信息的代码在笔者自己命 名的Getdata()函数中实现,分别通过对数据库中的防伪 编码表,产品信息表,仓库信息表,入库信息表,发货信息 表,供销商信息表的综合查询,将查询信息发送给采集 终端,由于字数的限制,文中没有给出Getdata()函数的 代码。 服务器端Socket()代码如下: Imports System.Net.Sockets Imports System.Net Imports System.Text Imports System.Threading Public Class Forml Dim s As Socket=Nothing Dim t As Thread Public Delegate Sub getUserlnfo(ByVal str As Stirng) Public Sub showlist(ByVal str As Stirng) ListBox1.Items.Insert(O,str) End Sub Public Sub waitdata() s=New Socket(AddressFamily.InterNetwork,SocketType. Stream.ProtocolType.Tcp)’使用TCP协议 Dim localEndPoint As New IPEndPoint(IPAddress.Parse (“218.201.202.138”),6666)‘服务端指定iP和Port s.Bind(1ocalEndPoint)‘绑定 s.Listen(100)’开始监听最多1o0个同时的客户端 Whi1e(True) Dim bytes(1024)As Byte 用来储存接受到的字节 Dim ss As Socket=s.Accept’如果接收到字节.则创造 一个socket的对象来容纳对方的socket ss.Receive(bytes)‘接受到的字节 Dimclip As String=(CType (ss.RemoteEndpoint, IPEndpoint)).Address.ToString()获取来访IP Dim clport As String= (CType(ss.RemoteEndpoint, IPEndPoint)).Port.ToStirng()获取来访端口 Dim str As String=Encoding.Unicode.GetString(bytes)将 荻取的byte转化成stirng Dim aa As New getUserInf0(Address0f Getdata)‘派生了 委托的对象 Me.Invoke(aa,str)‘执行委托的过程 End While End Sub 启动监听服务: t=New Thread(AddressOf WaitData) t.Start() 关闭监听服务: Try s.Close() t.Abort() Catch ex As Exception Finally Button 1.Enabled=True End Try 4.2采集终端 在客户端.采用.NET提供的异常处理机制来实现Socket 编程。异常处理机制为程序提供了错误处理的能力,在程序 执行代码时.万一发生了异常,程序会按照预定的处理办法 对异常进行处理,异常处理完成之后,程序继续运行。当采集 器连接服务器失败或者发送失败时,系统会自动弹出错误提 示,采集器端异常处理代码如下: Try Dim bytes(1024)As Byte s=New Socket(AddressFamily.InterNetwork,SocketType. Stream,ProtocolType.Tcp) Dim localEndpoint As New IPEndPoint(IPAddress.Parse (“218.201.202.138”),6666) s.Connect(1ocalEndpoint) s.Send(Encoding.Unicode.GetBytes(TextBox1.Text)) s.Close() Catch ex As Exception Msgbox(“连接失败或者发送失败,请与产品供应商联系”) End Try 5系统的实现 5.1采集终端运行结果 运行结果如图4所示。用户可以自己输入服务器的IP 及端口,通过点击“查询”按钮,将采集器扫描出的商品防伪 编码发送到相应的服务器端:服务器端返回的查询结果.在 商品信息栏中显示出来。 -155- 

《电子设计工程)2013年第1期 6结 论 该远程物流查询系统充分利用了智能采集终端的GPRS 功能.采用Socket网络编程实现了远程智能采集终端与服务 器的即时通信功能。使得远程智能采集器通过发送商品的防 伪编码信息,即时查询该商品的真伪信息以及物流信息。该 系统已用于某防伪公司的物流查询中进行测试.实践应用表 明该系统具有操作简便,成本低廉,性能稳定等特点,达到了 设计的要求。 参考文献: 【1】郭郑川,陈军红.SQL Server 2008全学习手册[M】.北京: 图4客户端运行结果图 Fig.4 Map of client running result 清华大学出版社,2011| 【2】杨富国,马兰。俞明.Visual Basic.NET网络编程案例解 析【M】.北京:清华大学出版社,2009. 5.2服务器端运行结果 【3】谢希仁.计算机网络[M】.北京:电子工业出版社,2008. [4]Wildermuth S,Blomsma M,Wightman J,张大威.ADO.NET 运行结果如图5所示。点击“开始监听”按钮,可以监听 各个采集器发送的商品防伪编码信息,并将商品防伪编码信 息显示出来,通过检索后台数据库,将查询结果发送给各个 采集终端,每当处理完一个商品防伪编码后,该防伪编码便 从系统界面自动删除;点击“关闭监听”按钮,可停止监听。 应用程序开发(MCTS教程)[MI.北京:清华大学出版社, 2010. 【5]李世军,贾兆航,何乐生,等.GSM&GPRS在无线抄表系统 中的应用与比较[J].电子设计工程,2011,19(1):73-76. LI Shi-jun,JIA Zhao-hang,HE Le—sheng,et a1.Application and comparison of GSM&GPRS in wireless meter reading system[J].Eleetronin Design Engineeirng,201 1,19(1):73-76. 【6]吴新龙.端到端通信中TCP穿越NAT的解决方案【J].电力 系统通信。20o6,27(159):10-12. WU Xin—long.Solution for NAT traversal of TCP in P2P communications【J】.Telecommunication for Electirc Power System,2006,27(159):10—12. 【7】何志勇,赵瑞国,袁军社.传感器数据库管理系统设计【J]. 火箭推进.2010(6):62—67. HE Zhi—yong,ZHAO Rui-guo,YUAN Jun-she.Design of 图5服务器运行结果图 Fig.5 Map of server running result database management system for transducer[J].Journal of Rocket Propulsion.2010(6):62—67. (上接第152页) 持更多的用户;但是也存在着不足,如短消息长度受限,虽符 合要求但是实时性不强.存在时延而且不可避免。在后续工 作中可以减小GSM短消息的时延现象。增强时效性.进一步 提高系统的通信质量。 参考文献: (3):55—58. SUN Wan—rong,YANG Bo.Design of RTU based on ARMSl咖. Reliable transmission of Things Industry,2012(3):55-58. 【3】SIM Com.AT Commands Set[S].(文档编号:SIM900一ATC— V1.00).2010. 【1】雷怡然,郭兴龙.基于GSM短消息的热水器遥控系统[J】.山 西电子技术,2012(3):9—10,25. LEI Yi-ran,GUO Xing-long.Water heater remote control [4】SIM Com.Hardware Design【S】. (文档编号:SIM90o—HD— V1.01).2o09. [5】孙艳.基于GSM通信方式的水情遥测系统研究与应用【D】. 南京:河海大学.20o4. system based on GSM SMS叨.Shanxi Electronic Technology, 2012(3):9—10,25. 【6]周文君.GSM短消息在水情遥测系统中的研究与应用【D】. 南京:河海大学,20o3. [2]孙万蓉,杨波.基于ARM9的RTU设计[J].物联网技术,2012 -156- 


本文标签: 系统 采集 查询