国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

網(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)交互性的真正后臺工具。本文介紹了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ī)定好的協(xié)議進(jìn)行組裝包,在接收端按照規(guī)定好的協(xié)議把包進(jìn)行解析,從而提取出對應(yīng)的信息,達(dá)到通信的目的。中間最主要的就是數(shù)據(jù)包的組裝、過濾、捕獲和分析等處理。

(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ā)提供了一套簡單的API,并制定了相應(yīng)規(guī)范。

1Socket概論

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

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

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

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

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

(2)客戶端工作流程:客戶端程序相對簡單,只需要建立一個(gè)Socket與服務(wù)器端連接,成功后通過這個(gè)Socket來發(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ò)通信常見問題及技術(shù)發(fā)展
電子制作(2017年17期)2017-12-18 06:41:06
我就是不想跟你聊天了
意林(2017年9期)2017-06-06 10:26:12
敞開門聊天
在Windows中安裝OpenVPN
網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗(yàn)證
勃利县| 涞源县| 广水市| 承德市| 彰武县| 乾安县| 时尚| 正定县| 陇西县| 崇阳县| 晋州市| 秀山| 涟源市| 徐州市| 玉门市| 铜陵市| 略阳县| 茶陵县| 吉隆县| 北京市| 中阳县| 法库县| 于都县| 四会市| 中卫市| 精河县| 玉门市| 曲阜市| 普兰店市| 临汾市| 高雄市| 陆良县| 襄城县| 维西| 湖州市| 大港区| 潜江市| 扎兰屯市| 郴州市| 巴塘县| 宣化县|