分享
 
 
 

Winsock技术在远程监控中的应用

王朝system·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

摘要:本文根据Winsock技术及网络通信原理, 利用VC++编程技术,通过网络数据传输在客户端得到实时温度运行图形,实现了对人工气候室温度运行状况的远程监控, 满足了低成本、高效率的实时自动化要求。

1 引言

随着网络技术的不断发展进步,网络对整个社会产生了深远的影响。由此也出现了以网络为基础的监控治理新框架。实现基于网络的设备远程监控,成了目前计算机网络应用领域中的一个热点问题。利用套接字技术,通过Socket实现网络之间的连接和数据交换,实现对设备的远程监控,具有很好的应用前景。

2 人工气候室远程监控系统的特点及实现

2.1通信接口-----套接字的创建

本文所要实现的是对一个小型人工气候室的远程监控,在异地或同一个局域网范围内,可以不必亲临现场就可以观测到人工气候室当前的温度状况和运行中的温度曲线,由于在远端只是需要查询和观察,因此只要处理好现场监控计算机和远端客户机之间的通信和数据传输就可以了。这样不用占用现场计算机的CPU处理时间,从而能节省资源以便做更多的处理现场的工作。

和远端服务器的连接可以分为以下几个过程:

(1) 服务进程总是先于客户进程启动,服务进程首先创造套接字。

(2) 将本地地址绑定到所创建的套接字上以使在网络上标识该套接字。

(3) 将套接字置于监听模式并预备接受连接请求。

(4) 客户端创建套接字,调用SOCKET函数,方法同上。

(5) 客户向服务器提出连接请求。

(6) 当请求到来时,被阻塞服务进程的accept()函数如(3)中所述生成一个新的套接字与客户端建立连接,并向客户端返回接收信号。

(7) 一旦客户机的套接字收到来自服务器的接收信号,则表示客户机与服务器的连接已就绪,则可以进行数据传输了。

(8) 关闭套接字。一旦任务完成,就必须关掉连接已释放套接字占用的资源。

创建连接的服务器端和客户端代码简述如下:

服务器端:void CServerView::OnStart ()

{ Started=TRUE;

m_Start.EnableWindow(!Started);

try

{ g_sListen.Create(6802,SOCK_DGRAM,NULL);

g_sListen.Bind(6802,m_ip);//,6802为端口号,m_IP为服务器端IP地址

g_sListen.Listen();

((CServerDoc*)GetDocument())->g_pchatListen=new CChatLsnSock(

(CAnyServerDoc*)GetDocument());

CChatLsnSock* g_pchatListen=((CAnyServerDoc*)GetDocument())->g_pchatListen;

g_pchatListen->Create(9999,SOCK_STREAM);//侦听聊天室连接套接字创建

g_pchatListen->Listen();

GetDlgItem(IDC_RESPONSE)->SetWindowText("开始对客户端服务!");

}

服务端开启后的运行界面如图1所示。

客户端:

void CClientView::OnClientStart()

{m_sockRecv.Create(6801,SOCK_DGRAM,m_ClientIP);//6801为端口号,m_ClientIP为客户端IP

m_sockRecv.Bind(6801,m_ClientIP);

m_timer1=SetTimer(1,1000,NULL);

m_timer2=SetTimer(2,250,NULL);

GetLocalTime(&SysTime);

m_StartTime=SysTime;

m_WavePlay.SetStartTime(SysTime.wYear,SysTime.wMonth,SysTime.wDay,SysTime.wHour,SysTime.wMinute,SysTime.wSecond);//画出曲线初始时间

this->m_CurrentSysTime.SetFocus();

}

图1:服务器端开启服务运行界面

2.2网络中的数据传输与监控实现

基于网络的远程控制和测量应用中,一般数据传输采用二进制格式是主丛式,在人工气候室的远程监控系统中,通信双方需要传输的数据流量少,下位机一般是微控制器等嵌入式系统,数据处理能力较慢,通信双方也不必保持紧密联系,因此大多采用UDP协议,基于点对点的方式,双方通信的数据可靠性可以通过定义数据表示格式来保证。另外采用把通过网络传输过来的数据在客户端用曲线的形式重画显示,用了一个本人自做的一个ActiveX控件来显示接收的数据,在数据传输过程中存在的滞后时间很短,可以忽略不计。

在设备运行时,服务器端的状态一直保持开启,测温元件把测量到的温度值传入到控制微机,同时通过网络传到远程客户端,远程连接通过输入服务器端的IP地址,输入指定的用户名和密码,就可以连接上,从而就实现了远程监控。

建立连接后客户端就可以接收发送过来的温度值且用曲线形式显示出来:void CClientView::OnDataReceive()

{

extern CListBox* pmyListBox;

char szTemPRecv[20];

CString szIP(m_IP);//得到服务器端的IP

UINT uPort=6802;//指出端口

int iTempRecv=m_sockRecv.ReceiveFrom(szRecv,10,szIP,uPort,0);

szRecv[iRecv]='\0';

m_szRecv=szTempRecv;

m_listBox.AddString((LPCTSTR)m_szRecv);

int nCount=m_listBox.GetCount();

if (nCount > 0)

m_listBox.SetCurSel(nCount-1);

GetLocalTime(&SystemTime);

m_NowTime=SystemTime;

CString strSysTime;

strSysTime.Format(_T("%d-%d-%d %d:%d:%d"),SystemTime.wYear,SystemTime.wMonth,SystemTime.wDay,SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond);

UpdateData(FALSE);

CurABSTime=(m_NowTime-m_StartTime).GetTotalSeconds();

m_WavePlay.SetPoint2(CurABSTime,atoi(m_szRecv));//用自做ActiveX控件画出温度曲线

完成后通过远程登录看到的运行界面如图2所示。

3:结束语

在实际应用中,程序还有聊天功能、查看远程屏幕功能、文件的上传和下载功能,从而更方便与远端进行通信。另外在连接时采用密码和用户名印证方法,从而使监控更加有力,并防止不法用户登录和篡改数据。本论文人工气候室是与韶关医疗器械厂合作的用于生物培养的项目,目前已经投入使用并在区内通过局域网实现了对设备的监控。

图2 当前服务器端人工气候室温度运行情况

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有