freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)網(wǎng)絡(luò)c實(shí)驗(yàn)指導(dǎo)書-閱讀頁(yè)

2025-05-29 03:28本頁(yè)面
  

【正文】 也稱為順序號(hào)(Sequence Number),簡(jiǎn)寫為SEQ,從上面三次握手的分析可以看出,當(dāng)一方要與另一方聯(lián)系時(shí)就發(fā)送一個(gè)初始序號(hào)給對(duì)方,意思是:“讓我們建立聯(lián)系吧?”,服務(wù)方收到后要發(fā)個(gè)獨(dú)立的序號(hào)給發(fā)送方,意思是“消息收到,數(shù)據(jù)流將以這個(gè)數(shù)開始。在傳輸過程中雙方數(shù)據(jù)是獨(dú)立的,因此每個(gè)TCP連接必須有兩個(gè)順序號(hào)分別對(duì)應(yīng)不同方向的數(shù)據(jù)流。在握手階段,確認(rèn)序號(hào)將發(fā)送方的序號(hào)加1作為回答,在數(shù)據(jù)傳輸階段,確認(rèn)序號(hào)將發(fā)送方的序號(hào)加發(fā)送的數(shù)據(jù)大小作為回答,表示確實(shí)收到這些數(shù)據(jù)。4位首部長(zhǎng)度:。本例值為7,TCP的頭長(zhǎng)度為28字節(jié),等于正常的長(zhǎng)度2 0字節(jié)加上可選項(xiàng)8個(gè)字節(jié)。 6個(gè)標(biāo)志位:URG 緊急指針,告訴接收TCP模塊緊要指針域指著緊要數(shù)據(jù);ACK 置1時(shí)表示確認(rèn)號(hào)(為合法,為0的時(shí)候表示數(shù)據(jù)段不包含確認(rèn)信息,確認(rèn)號(hào)被忽略。 RST 置1時(shí)重建連接。SYN 置1時(shí)用來(lái)發(fā)起一個(gè)連接。用來(lái)釋放連接,表明發(fā)送方已經(jīng)沒有數(shù)據(jù)發(fā)送了。窗口大小為字節(jié)數(shù),起始于確認(rèn)序號(hào)字段指明的值,這個(gè)值是接收端正期望接收的字節(jié)。16位檢驗(yàn)和:檢驗(yàn)和覆蓋了整個(gè)的TCP報(bào)文段: TCP首部和TCP數(shù)據(jù)。16位緊急指針:只有當(dāng)U R G標(biāo)志置1時(shí)緊急指針才有效?!黾俣═CP頭部:0d 28 00 15 50 5f a9 06 00 00 00 00 70 02 40 00 c0 29 00 00第一個(gè)8字節(jié):“0d 28”表示本地端口號(hào)。第二個(gè)8字節(jié):“50 5f a9 06”表示順序號(hào)(Sequence Number),簡(jiǎn)寫為ACKNUM。第四個(gè)8字節(jié):“70 02”。接著的6bit為TCP協(xié)議保留位,都為0。這是兩個(gè)計(jì)算機(jī)數(shù)據(jù)交流的信息標(biāo)志,接收和發(fā)送斷根據(jù)這些標(biāo)志來(lái)確定信息流的種類。用到的時(shí)候值為1,用來(lái)處理避免TCP數(shù)據(jù)流中斷。PSH:(Push Function),PUSH標(biāo)志的數(shù)據(jù),置1時(shí)請(qǐng)求的數(shù)據(jù)段在接收方得到后可直接送到應(yīng)用程序,而不必等到緩沖區(qū)滿時(shí)才傳送。如果接收到RST位時(shí),通常發(fā)生了某些錯(cuò)誤。即,SYN和ACK來(lái)區(qū)分Connection Request和Connection Accepted。通過捕獲FTP連接過程所傳輸?shù)臄?shù)據(jù)并加以分析,加深理解FTP協(xié)議的工作過程。②進(jìn)入快捷欄中的capture panel 開始捕獲。4. 三次握手(Threeway_handshake)源主機(jī)-目的主機(jī) 目的主機(jī)-源主機(jī) 源主機(jī)-目的主機(jī)分析三次握手過程中TCP/IP協(xié)議之間的差別。并根據(jù)捕獲到的FTP數(shù)據(jù)包中的數(shù)據(jù),分析TCP/IP協(xié)議頭部及以太網(wǎng)幀頭。 捕獲一段ping命令的數(shù)據(jù)流,并分析其工作過程。2. 寫出所捕獲的數(shù)據(jù)包中三次握手的含義?!緦?shí)驗(yàn)要求】 能編寫基于對(duì)話框的windows應(yīng)用程序; 能用Visual C++中的MFC CSocket類,實(shí)現(xiàn)網(wǎng)絡(luò)傳輸數(shù)據(jù); 制作實(shí)用的局域網(wǎng)一對(duì)一聊天程序;【實(shí)驗(yàn)原理】一、Windows Socket和套接口的基本概念網(wǎng)際協(xié)議(Internet Protocol,IP)是一種用于互聯(lián)網(wǎng)的網(wǎng)絡(luò)協(xié)議,已廣為人知。從它的設(shè)計(jì)來(lái)看,IP是一個(gè)無(wú)連接的協(xié)議,并不能保證數(shù)據(jù)投遞萬(wàn)無(wú)一失。 如果希望在Microsoft Windows下通過TCP和UDP協(xié)議建立網(wǎng)絡(luò)應(yīng)用程序,則需要使用Winsock套接口編程技術(shù)。Win32中,套接口不同于文件描述符,所以它是一個(gè)獨(dú)立的類型——SOCKET。Windows在Internet支配域中的TCP/IP協(xié)議定義了Winsock網(wǎng)絡(luò)編程規(guī)范,融入了許多新特點(diǎn)。此外,編寫的程序還可被迅速地移植到任何支持Socket的網(wǎng)絡(luò)系統(tǒng)中去。在Windows下,TCP/IP上層模型在很大程度上與用戶的Winsock應(yīng)用有關(guān);換言之,用戶的Winsock應(yīng)用控制了會(huì)話的方方面面,必要時(shí),還會(huì)根據(jù)程序的需要格式化數(shù)據(jù)。流式套接口定義了一種可靠的面向連接的服務(wù)(利用TCP協(xié)議),實(shí)現(xiàn)了無(wú)差錯(cuò)無(wú)重復(fù)的順序數(shù)據(jù)傳輸。原始套接口允許對(duì)低層協(xié)議如IP和ICMP直接訪問,主要用于新的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)的測(cè)試等。套接口工作過程如下:服務(wù)器啟動(dòng),通過調(diào)用socket( )建立一個(gè)套接口,然后調(diào)用bind( )將該套接口和本地網(wǎng)絡(luò)地址聯(lián)系在一起,再調(diào)用accept( )來(lái)接收連接。連接一旦建立,客戶機(jī)和服務(wù)器之間就可以通過調(diào)用read( )和write( )來(lái)發(fā)送和接受數(shù)據(jù)。在網(wǎng)絡(luò)編程中,掌握端口的概念十分重要。客戶機(jī)需要通過TCP或UDP和服務(wù)器通信時(shí),必須指定服務(wù)器的IP地址和服務(wù)端口號(hào)。在選擇端口時(shí),應(yīng)特別小心,因?yàn)橛行┛捎枚丝谔?hào)是為“已知的”(即固定的)服務(wù)保留的,如文件傳輸協(xié)議和超文本傳輸協(xié)議,即FTP(21號(hào)端口)和HTTP(一般為8080端口)。從本質(zhì)上說(shuō),端口可分為3類:“已知”端口、已注冊(cè)端口、動(dòng)態(tài)和(或)私用端口。(2)已注冊(cè)的端口1024~49151,由IANA列出來(lái)的,供普通用戶的普通用戶進(jìn)程或程序使用。此外,49152~65535間的端口可自由使用,因?yàn)镮ANA在這些端口上沒有注冊(cè)服務(wù)。圖41給出了CSocket類的繼承關(guān)系。CSocket類派生于CAsyncSocket,它繼承了父類中一些常用易懂的Windows Sockets API函數(shù),并對(duì)CAsyncSocket中低層的較難控制的一些API函數(shù)或成員函數(shù)進(jìn)行了處理,使得網(wǎng)絡(luò)傳輸簡(jiǎn)捷易用,同時(shí)它支持模塊化的后臺(tái)信息處理,解決了CAsyncScoket中較難克服的多線程處理。成員函數(shù)和參數(shù)說(shuō)明:(1)BOOL Create(UNIT nsocketPort=0,int nSocketType=SOCK_STREAM, long lEvent = FD_READ|FD_WRITE|FD_OOB|FD_ACCEPT|FD_CONNECT| FD_CLOSE, LPCTSTR lpszSocketAddress=NULL)該函數(shù)用來(lái)建立Socket,如果函數(shù)成功,則返回非零值;否則返回值為0。nSocketType:為套接字類型——SOCK_STREAM或SOCK_DGRAM。lEvent:標(biāo)識(shí)該Socket要完成哪種工作,默認(rèn)值為FD_READ|FD_WRITE| FD_OOB| FD_ACCEPT|FD_CONNECT| FD_CLOSE。一個(gè)帶點(diǎn)的數(shù)據(jù),如“”,默認(rèn)值為NULL。(2)BOOL Listen(int nConnectionBacklog=5)該函數(shù)的作用是等待Socket請(qǐng)求,如果調(diào)用成功,則返回非零值;否則返回值為0。在進(jìn)程應(yīng)答連接并把它放到等待隊(duì)列時(shí),套接字被置成被動(dòng)模式(passive mode)。nConnectionBacklog:表示等待隊(duì)列的長(zhǎng)度,默認(rèn)值為最大值5,有效值為1~5。其中:lpszHostAddress:對(duì)象連接的套接字的網(wǎng)絡(luò)地址、機(jī)器名,或以句點(diǎn)分隔的數(shù)字,如“”。注意:Connect函數(shù)還有另一個(gè)版本:BOOL Connect(const SOCKADDR *lpSockAddr, int nSockAddrLen);具體用法可以參閱MSDN Library中關(guān)于CAnyscSocket類的闡述。三、利用CSocket進(jìn)行傳輸?shù)妮o助類簡(jiǎn)介CSocketFile類CSocketFile繼承自CFile類,用在基于Windows Socket的網(wǎng)絡(luò)上傳輸數(shù)據(jù)。成員函數(shù):CSocketFile用到的成員函數(shù)只有構(gòu)造函數(shù)。其中:pSocket:連接到CSocketFile對(duì)象的套接口。只有當(dāng)希望在單機(jī)方式下來(lái)使用這個(gè)CSocketFile對(duì)象時(shí),才傳遞FALSE。說(shuō)明:此成員函數(shù)用來(lái)構(gòu)造一個(gè)CSocketFile對(duì)象。注意:一個(gè)CSocketFile對(duì)象也可以在沒有CAchive對(duì)象的情況下作為一個(gè)(受限制的)文件來(lái)使用。要在沒有檔案的情況下使用該文件對(duì)象,則給bArchiceCompatible參數(shù)傳遞FALSE。2 、CArchive類CAchive類沒有基類。使數(shù)據(jù)永久保留的過程就叫做“串行化”。CArchive對(duì)象一般和一個(gè)文件類關(guān)聯(lián)(CFile類或CSocketFile類)。在CArchive類中,重載了提?。ǎ┖筒迦耄ǎ┻\(yùn)算符,它是方便的歸檔編程接口,主要支持CObject派生類。2(nport)創(chuàng)建socket(nport)。聽等連接與服務(wù)器建立連接(straddr,nport)。4CSocket m_receive。此時(shí)阻塞,等待客戶機(jī)連接構(gòu)造新的socket對(duì)象用以接受客戶端的連接5CSocketFile file(amp。m_server)。file,CAchive::load)。file,CAchive::store)。file,CArchive::load)。file,CArchive::store)。aroutvalue。aroutvalue。五、使用CSocket類的同步問題和解決方法有了上面的理論基礎(chǔ),就可以自己設(shè)計(jì)實(shí)現(xiàn)網(wǎng)絡(luò)通信了。例如:可以Client端發(fā)送數(shù)據(jù),Server端接收數(shù)據(jù):Server端:m_receive(void *lpBuf, int nBufLen, int nFlags=0);Clietn端:m_client(const void *lpBuf, int nBufLen, int nFlags=0);接著我們?cè)俜治鲆幌赂鱾€(gè)類中提到的常用方法的同步特性:Listen(….):執(zhí)行后無(wú)論有無(wú)連接,立即返回。Accept(…):Listen函數(shù)返回后可以執(zhí)行此函數(shù),但是此函數(shù)是基于阻塞的,只要客戶機(jī)connect連接并且端口正確,則立即成功返回并建立連接 ;若遲遲監(jiān)聽不到連接,則不斷阻塞,直到連接成功或者強(qiáng)行關(guān)閉。Receive(…):和Accept一樣的阻塞,直到能從socket緩沖區(qū)成功讀取到nBufLen長(zhǎng)度的數(shù)據(jù)。(2)在用Receive接受數(shù)據(jù)時(shí),若遲遲得不到發(fā)送的數(shù)據(jù),也阻塞不能響應(yīng)。CSocket類里的OnReceive和OnAccept消息處理函數(shù)(繼承自CAsyncSocket類)可以解決上述兩個(gè)問題,其原理是:(1)OnAccept():Listen過后,若監(jiān)聽到客戶機(jī)有連接,則產(chǎn)生消息調(diào)用OnAccept(),一般可以在此函數(shù)里面調(diào)用Accept便可避免監(jiān)聽時(shí)的阻塞。WSAENETDOWN:Windows Socket檢測(cè)到網(wǎng)絡(luò)系統(tǒng)故障。(2)OnReceive():建立連接后,若檢測(cè)到Socket緩沖區(qū)里有數(shù)據(jù)到達(dá),便自動(dòng)調(diào)用OnReceive(),在此函數(shù)里面使用Receive接收就可避免接受數(shù)據(jù)的阻塞。WSAENETDOWN:Windows Socket檢測(cè)到網(wǎng)絡(luò)系統(tǒng)故障?!緦?shí)驗(yàn)內(nèi)容與步驟】在上述實(shí)驗(yàn)原理的基礎(chǔ)上,以點(diǎn)對(duì)點(diǎn)通信的聊天程序?yàn)槔龑?shí)現(xiàn)網(wǎng)絡(luò)通信,客戶機(jī)/服務(wù)器模式是socket點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)程序的典型模式。其實(shí)現(xiàn)步驟為:創(chuàng)建兩個(gè)對(duì)話框程序,分別為服務(wù)器端和客戶端;啟動(dòng)服務(wù)器端程序;創(chuàng)建套接字后等待客戶的連接;客戶啟動(dòng),創(chuàng)建套接字,然后和服務(wù)器連接;連接建立后,客戶機(jī)和服務(wù)器可以通過建立的套接字連接進(jìn)行信息通信。參考文獻(xiàn)1 2 錢朝陽(yáng),吳偉,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1