• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      網(wǎng)絡(luò)通信編程教學(xué)設(shè)計(jì)與實(shí)現(xiàn)

      2011-11-03 11:37:20黑龍江徐鑒
      職業(yè)技術(shù) 2011年3期
      關(guān)鍵詞:服務(wù)器端網(wǎng)絡(luò)通信聊天

      黑龍江 徐鑒

      網(wǎng)絡(luò)通信編程教學(xué)設(shè)計(jì)與實(shí)現(xiàn)

      黑龍江 徐鑒

      交互性是程序設(shè)計(jì)最大特性,而使用網(wǎng)絡(luò)通信技術(shù)是實(shí)現(xiàn)交互性的真正后臺(tái)工具。本文介紹了VC++實(shí)現(xiàn)網(wǎng)絡(luò)通信編程技術(shù)在教學(xué)中的實(shí)現(xiàn)。它是實(shí)現(xiàn)不同客戶進(jìn)行數(shù)據(jù)交互、網(wǎng)絡(luò)通信的主要工具,并實(shí)現(xiàn)了多客戶間的實(shí)時(shí)聊天。

      交互性;VC++;網(wǎng)絡(luò)通信

      概述

      網(wǎng)絡(luò)通信主要是在發(fā)送端把信息通過(guò)規(guī)定好的協(xié)議進(jìn)行組裝包,在接收端按照規(guī)定好的協(xié)議把包進(jìn)行解析,從而提取出對(duì)應(yīng)的信息,達(dá)到通信的目的。中間最主要的就是數(shù)據(jù)包的組裝、過(guò)濾、捕獲和分析等處理。

      (1)Internet網(wǎng)絡(luò)模型

      網(wǎng)絡(luò)模型:網(wǎng)絡(luò)的結(jié)構(gòu)原理和工作原理

      OSI參考模型:七層

      Internet網(wǎng)絡(luò)模型:四層

      網(wǎng)絡(luò)協(xié)議:指定層上進(jìn)行數(shù)據(jù)交換的規(guī)則

      Internet的網(wǎng)絡(luò)層協(xié)議:IP協(xié)議;DNS協(xié)議 (輔助協(xié)議)

      Internet的傳輸層協(xié)議:TCP協(xié)議;UDP協(xié)議

      (2)套接字基礎(chǔ)

      套接字(Sockets):應(yīng)用程序和網(wǎng)絡(luò)協(xié)議的接口

      TCPSockets:使用TCP協(xié)議實(shí)現(xiàn)可靠的網(wǎng)絡(luò)通信

      UDPSockets:使用UDP協(xié)議實(shí)現(xiàn)效率較高的網(wǎng)絡(luò)通信

      (3)Visual C++

      VisualC++是一個(gè)功能強(qiáng)大的、完全可擴(kuò)展的Windows開發(fā)系統(tǒng)。具有強(qiáng)有力的Internet支持,同時(shí)WinSock規(guī)范給應(yīng)用程序開發(fā)提供了一套簡(jiǎn)單的API,并制定了相應(yīng)規(guī)范。

      1Socket概論

      Socket在計(jì)算機(jī)中提供了一個(gè)通信端口,可以通過(guò)它與任何一個(gè)具有Socket接口的計(jì)算機(jī)通信。應(yīng)用程序在網(wǎng)絡(luò)上傳輸,與使用文件句柄相似,可以對(duì)Socket句柄進(jìn)行讀、寫操作。將Socket翻譯為套接字,具體分為以下三種類型:

      字節(jié)流套接字(StreamSocket) 它提供面向連接的、無(wú)差錯(cuò)的、先后順序一致的、無(wú)記錄邊界和非重復(fù)的網(wǎng)絡(luò)信包傳輸。是最常用的套接字類型,TCP/IP協(xié)議族中的TCP協(xié)議使用此類接口。

      數(shù)據(jù)報(bào)套接字(DatagramSocket) 它是無(wú)連接的服務(wù),它以獨(dú)立的信包進(jìn)行網(wǎng)絡(luò)傳輸,信包最大長(zhǎng)度為32KB,傳輸不保證順序性、可靠性和無(wú)重復(fù)性,它通常用于單個(gè)報(bào)文傳輸或可靠性不重要的場(chǎng)合。TCP/IP協(xié)議族中的UDP協(xié)議使用此類接口,原始數(shù)據(jù)報(bào)套接字(RawSocket) 提供對(duì)網(wǎng)絡(luò)下層通訊協(xié)議(如IP協(xié)議)的直接訪問(wèn),它一般不是提供給普通用戶的,主要用于開發(fā)新的協(xié)議或用于提取協(xié)議較隱蔽的功能。

      圖1 面向連接協(xié)議的SOCKET編程模型

      2 常用Socket API

      Socket API函數(shù)集

      主要的系統(tǒng)調(diào)用包括:socket()-創(chuàng)建Socket;bind()-將創(chuàng)建的Socket與本地端口綁定;connect()與accept()-建立Socket連接;listen()-服務(wù)器監(jiān)聽是否有連接請(qǐng)求;send()-數(shù)據(jù)的可控緩沖發(fā)送;recv()-可控緩沖接收;closesocket()-關(guān)閉Socket。具體如下:

      intbind(intsockfd,structsockaddr*my_addr,int addrlen);

      intconnect(intsockfd,structsockaddr*serv_addr,intaddrlen);

      intlisten(intsockfd,intbacklog);

      intaccept(intsockfd,void*addr,int*addrlen);

      intclose(sockfd);

      int send(int sockfd,const void*msg,int len,int flags);

      intrecv(intsockfd,void*buf,int len,unsigned int flags);

      3 聊天程序的設(shè)計(jì)說(shuō)明

      聊天程序是以客戶端程序登錄服務(wù)器,服務(wù)器提供服務(wù)端連接響應(yīng),就可以與登錄在同一服務(wù)器上的用戶交談。因此,程序要在TCP/IP環(huán)境下實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。

      (1)服務(wù)器端工作流程:服務(wù)器端通過(guò)socket()調(diào)用創(chuàng)建一個(gè)Socket數(shù)組后,與指定的本地端口綁定bind(),就可以在端口進(jìn)行偵聽listen()。如果有客戶端連接請(qǐng)求,則選擇一個(gè)空Socket,將客戶端地址賦給這個(gè)Socket。然后登錄成功的客戶就可以聊天。

      (2)客戶端工作流程:客戶端程序相對(duì)簡(jiǎn)單,只需要建立一個(gè)Socket與服務(wù)器端連接,成功后通過(guò)這個(gè)Socket來(lái)發(fā)送和接收數(shù)據(jù)。

      4 核心代碼分析(這里僅給出核心代碼,其它的代碼可以自行添加)

      (1)服務(wù)器端代碼

      voidCChatServerDlg::UpdateUser(CClientSocket*pSocket)//聊天用戶Socket信息更新

      (2)客戶端代碼

      [1]四維科技,等.VisualC++網(wǎng)絡(luò)通信編程實(shí)用案例精選.人民郵電出版社,2006.

      [2]李媛媛.VisualC++網(wǎng)絡(luò)通信開發(fā)入門與編程實(shí)踐.電子工業(yè)出版社,2008.

      (作者單位:黑龍江省哈爾濱華夏計(jì)算機(jī)職業(yè)技術(shù)學(xué)院)

      (編輯 王旸)

      猜你喜歡
      服務(wù)器端網(wǎng)絡(luò)通信聊天
      基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計(jì)
      電子制作(2019年15期)2019-08-27 01:11:48
      網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
      基于網(wǎng)絡(luò)通信的校園智能音箱設(shè)計(jì)
      電子制作(2018年1期)2018-04-04 01:48:30
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      談?dòng)?jì)算機(jī)網(wǎng)絡(luò)通信常見問(wèn)題及技術(shù)發(fā)展
      電子制作(2017年17期)2017-12-18 06:41:06
      我就是不想跟你聊天了
      意林(2017年9期)2017-06-06 10:26:12
      敞開門聊天
      在Windows中安裝OpenVPN
      網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
      基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗(yàn)證
      漳平市| 宣城市| 吉首市| 连城县| 蛟河市| 天峨县| 原平市| 峡江县| 瓦房店市| 伊通| 高雄县| 康定县| 德州市| 荣成市| 靖安县| 多伦县| 环江| 监利县| 扬州市| 永宁县| 木里| 湖口县| 灯塔市| 南郑县| 区。| 旺苍县| 拜泉县| 南昌县| 剑川县| 唐海县| 余江县| 九江县| 玉山县| 肃南| 西乡县| 高安市| 新郑市| 安远县| 深水埗区| 广丰县| 墨脱县|