《物聯(lián)網與WEB服務(1)》由會員分享,可在線閱讀,更多相關《物聯(lián)網與WEB服務(1)(10頁珍藏版)》請在裝配圖網上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,物聯(lián)網與,WEB,服務,肖微,物聯(lián)網概論回顧,物聯(lián)網的分層,感知識別層,網絡構建層,管理服務層(有爭議),綜合應用層,信息的傳輸,依賴,于計算機網絡(可以預見的未來),架構在傳統(tǒng)都協(xié)議之上,TCP/IP,、,HTTP,、,HTTPS,以,WEB,服務為載體的信息交互將占有較大的份額,WEB,服務的優(yōu)勢,適應性強:按照共同約定的,schema,來進行數據交互??梢员欢喾N語言、平臺支持。,便于,B2B,協(xié)作,有成熟的商業(yè)化平臺、工具的支持(,WCF,,,Java WebService Developer P
2、ack,),軟件巨頭的強力推動(,IBM,、微軟、谷歌、亞馬遜、甲骨文,),發(fā)展趨勢,基于應用層協(xié)議的遠程協(xié)作將繼續(xù)存在,Web,服務的機動性加強(以,WCF,為例,其前身為,XML Web Service,、,.NET Remoting,、,DCOM,等系列技術),開發(fā)趨于便捷化,TCP/IP,通訊回顧,計算機網絡通訊技術的基礎,IP,地址,+TCP,端口號,基于,TCP,的連接通訊與基于,UDP,的無連接通訊,以,socket,為編程基礎(,Windows,下以,WinSock,為例),各種軟件開發(fā)環(huán)境中提供了各樣的高層封裝,(,如:,.NET,中的,TcpClient,TcpListen
3、er,,,MFC,中的,C,等高層封裝),服務器,Socket C/S,交互模型,客戶端,s=socket,(),listen(s,),s=socket(),bind(s,),t=accept(s,),read(t,),write(t,),close(t),connect(s,),write(s,),read(s,),close(t),C#,中,TCP/IP,通訊舉例(,server,),private void OnStartListen(object sender,EventArgs e),try,InitServer();,catch(Exception excp),MessageBox
4、.Show(string.Format(Exception catched with message:,excp.Message);,private void OnClientAccepted(IAsyncResult ar),TcpListener svr=(TcpListener)ar.AsyncState;,TcpClient client=svr.EndAcceptTcpClient(ar);,NetworkStream stream=client.GetStream();,stream.BeginRead(m_buffer,0,1024,Callback,stream);,svr.B
5、eginAcceptTcpClient(OnClientAccepted,svr);,private void Callback(IAsyncResult ar),try,NetworkStream ns=(NetworkStream)ar.AsyncState;,int dataLen=ns.EndRead(ar);,/do something,ns.BeginRead(m_buffer,0,1024,Callback,ns);,catch,C#,中,TCP/IP,通訊舉例(,client,),private void OnConnect(object sender,EventArgs e)
6、,if(m_client=null),m_client=new System.Net.Sockets.TcpClient();,IPAddress ip=IPAddress.Parse(m_textIP.Text);,int port=int.Parse(m_textPort.Text);,m_client.Connect(ip,port);,m_buttonConnect.Text=Disconnect;,else,m_client.Close();,m_client=null;,m_buttonConnect.Text=Connect;,private void OnSendMessage
7、(object sender,EventArgs e),string txt=m_textSend.Text;,byte buf=System.Text.Encoding.ASCII.GetBytes(txt);,NetworkStream stream=m_client.GetStream();,stream.Write(buf,0,buf.Length);,stream.Flush();,應用層協(xié)議,多數應用層協(xié)議建立在,TCP,/IP,協(xié)議上或建立在,HTTP,/,HTTPS,上,協(xié)議一般包含協(xié)議頭、,body,、協(xié)議尾。,頭可以定義,telegram,的長度,也可以用特征結尾來定義,telegram,的結束。,基于狀態(tài)的協(xié)議和無狀態(tài)協(xié)議,