欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      如何升級TCP200控制器[推薦五篇]

      時(shí)間:2019-05-13 23:23:19下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《如何升級TCP200控制器》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《如何升級TCP200控制器》。

      第一篇:如何升級TCP200控制器

      如何升級TCP200控制器

      系統(tǒng)升級包含:控制器軟件升級和電腦軟件升級

      控制器軟件升級

      第一步、通過網(wǎng)線將電腦與控制器連接(即有網(wǎng)絡(luò)連接)第二步、安裝LM FLASH用于更新控制板的軟件

      找到壓縮包中的【工具】→【測試工具】→燒控制板工具→雙擊進(jìn)行安裝→完成。第三步、通過網(wǎng)絡(luò)命令獲取控制板IP地址以及MAC地址

      點(diǎn)擊【開始】→【運(yùn)行】→在輸入框中輸入cmd→點(diǎn)擊【確定】。完成后將會(huì)打開cmd命令窗口如圖所示。

      在窗口中輸入arp-a(注意空格)→點(diǎn)擊回車鍵。此時(shí),窗口中將會(huì)出現(xiàn)此局域網(wǎng)內(nèi)的其他網(wǎng)絡(luò)設(shè)備。其中,Internet Address 就是設(shè)備的IP地址,Physical Address 就是設(shè)備的MAC地址如圖所示

      第四步、打開谷歌瀏覽器,在地址欄中輸入控制板IP地址:192.168.8.76(出廠默認(rèn)192.168.8.242或192.168.8.243或192.168.8.99,請嘗試以上IP地址,如果不知道是多少,可以:關(guān)電源→開電源,票箱顯示屏將顯示本控制器的IP地址)然后點(diǎn)擊回車鍵。此時(shí),瀏覽器就會(huì)打開控制板設(shè)置頁面。點(diǎn)擊【點(diǎn)擊這里升級程序】,頁面跳轉(zhuǎn)后,再點(diǎn)擊【更新控制板軟件】即可。第五步、打開

      LM

      Flash

      (TCP200-4.0.3-ZH-CN-10120719-E.ZIP

      壓→TCP200-4.0.3-ZH-CN-10120719-E文件夾→工具文件夾→測試工具文件夾→燒機(jī)制板工具),參考如下圖進(jìn)行配置。配置完成后,在【Client IP Address】中輸入需要更新的控制板IP地址,在【Client MAC Address】中輸入需要更新的控制板的MAC地址如圖所示。(請參照第三步cmd命令窗口中的IP地址與MAC地址)

      第六步、點(diǎn)擊LM FLASH軟件上方的【Program】選項(xiàng)卡→點(diǎn)擊【Browse】按鈕打開需要更新的BIN文件即用于更新的文件,如下圖所示,然后點(diǎn)擊下方的【Program】按鈕即可。等待【進(jìn)度條】滾動(dòng)到100%即完成控制板的更新。

      控制器升級完成!

      電腦軟件升級

      第一步、將tomcat6、mysql停止后,把D盤上的DATA文件夾拷貝到其他盤(為防止在升級過程中以前的數(shù)據(jù)丟失)

      第二步、解壓updatetool.zip(我公司專門用于升級的軟件)第三步、點(diǎn)擊“升級前先執(zhí)行我.bat” 第四步、安裝服務(wù)器軟件(新的軟件)第五步、安裝客戶端軟件(新的軟件)第六步、重新啟動(dòng)電腦

      第七步、點(diǎn)擊update.jar按提示完成后重新啟動(dòng)電腦(升級包解壓出來的)第八步、打開googie瀏覽器,輸入服務(wù)器IP,進(jìn)入登錄頁面后,再瀏覽器頁面空白處點(diǎn)右鍵->重新載入 電腦軟件升級完成

      第二篇:TCP 報(bào)頭格式

      TCP協(xié)議頭最少20個(gè)字節(jié),包括以下的區(qū)域

      TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。源端口和源IP地址的作用是 標(biāo)示報(bào)問的返回地址。

      TCP目的端口(Destination port):16位的目的端口域定義傳輸?shù)哪康摹_@個(gè)端口指明報(bào)文接收計(jì)算 機(jī)上的應(yīng)用程序地址接口。

      TCP序列號(hào)(序列碼,Sequence Number):32位

      TCP應(yīng)答號(hào)(Acknowledgment Number):32位的序列號(hào)由接收端計(jì)算機(jī)使用,重組分段的報(bào)文成最初形式。,如果設(shè)置了ACK控制位,這個(gè)值表示一個(gè)準(zhǔn)備接收的包的序列碼。

      數(shù)據(jù)偏移量(HLEN):4位包括TCP頭大小,指示何處數(shù)據(jù)開始。

      保留(Reserved):6位值域,這些位必須是0。為了將來定義新的用途所保留。

      標(biāo)志(Code Bits):6位標(biāo)志域。表示為:緊急標(biāo)志、有意義的應(yīng)答標(biāo)志、推、重置連接標(biāo)志、同步序列號(hào)標(biāo)志、完成發(fā)送數(shù)據(jù)標(biāo)志。按照順序排列是:URG、ACK、PSH、RST、SYN、FIN。

      1.URG:緊急標(biāo)志

      緊急(The urgent pointer)標(biāo)志有效。緊急標(biāo)志置位,2.ACK:確認(rèn)標(biāo)志

      確認(rèn)編號(hào)(Acknowledgement Number)欄有效。大多數(shù)情況下該標(biāo)志位是置位的。TCP報(bào)頭內(nèi)的確認(rèn)編號(hào)欄內(nèi)包含的確認(rèn)編號(hào)(w+1,F(xiàn)igure:1)為下一個(gè)預(yù)期的序列編號(hào),同時(shí)提示遠(yuǎn)端系統(tǒng)已經(jīng)成功接收所有數(shù)據(jù)。3.PSH:推標(biāo)志

      該標(biāo)志置位時(shí),接收端不將該數(shù)據(jù)進(jìn)行隊(duì)列處理,而是盡可能快將數(shù)據(jù)轉(zhuǎn)由應(yīng)用處理。在處理 telnet 或rlogin 等交互模式的連接時(shí),該標(biāo)志總是置位的。4.RST:復(fù)位標(biāo)志

      復(fù)位標(biāo)志有效。用于復(fù)位相應(yīng)的TCP連接。5.SYN:同步標(biāo)志

      同步序列編號(hào)(Synchronize Sequence Numbers)欄有效。該標(biāo)志僅在三次握手建立TCP連接時(shí)有效。它提示TCP連接的服務(wù)端檢查序列編號(hào),該序列編號(hào)為TCP連接初始端(一般是客戶端)的初始序列編號(hào)。在這里,可以把TCP序列編號(hào)看作是一個(gè)范圍從0到4,294,967,295的32位計(jì)數(shù)器。通過TCP連接交換的數(shù)據(jù)中每一個(gè)字節(jié)都經(jīng)過序列編號(hào)。在TCP報(bào)頭中的序列編號(hào)欄包括了TCP分段中第一個(gè)字節(jié)的序列編號(hào)。6.FIN:結(jié)束標(biāo)志

      帶有該標(biāo)志置位的數(shù)據(jù)包用來結(jié)束一個(gè)TCP回話,但對應(yīng)端口仍處于開放狀態(tài),準(zhǔn)備接收后續(xù)數(shù)據(jù)。

      窗口(Window):16位,用來表示想收到的每個(gè)TCP數(shù)據(jù)段的大小。

      校驗(yàn)位(Checksum):16位TCP頭。源機(jī)器基于數(shù)據(jù)內(nèi)容計(jì)算一個(gè)數(shù)值,收信息機(jī)要與源機(jī)器數(shù)值 結(jié)果完全一樣,從而證明數(shù)據(jù)的有效性。

      優(yōu)先指針(緊急,Urgent Pointer):16位,指向后面是優(yōu)先數(shù)據(jù)的字節(jié),在URG標(biāo)志設(shè)置了時(shí)才有效。如果URG標(biāo)志沒有被設(shè)置,緊急域作為填充。加快處理標(biāo)示為緊急的數(shù)據(jù)段。

      選項(xiàng)(Option):長度不定,但長度必須以字節(jié)。如果 沒有 選項(xiàng)就表示這個(gè)一字節(jié)的域等于0。

      數(shù)據(jù)(Date):應(yīng)用程序的數(shù)據(jù)。

      第三篇:TCP IP網(wǎng)絡(luò)通信程序設(shè)計(jì)

      TCP/IP網(wǎng)絡(luò)通信程序設(shè)計(jì)

      本文介紹了TCP/IP網(wǎng)絡(luò)應(yīng)用程序的面向?qū)ο笤O(shè)計(jì)方法,并給出了用Visual C++4.2

      中MFC在Windows 95環(huán)境下開發(fā)的程序?qū)嵗ockets與Winsock 95

      Winsock 95是在Unix Sockets及Windows Sockets基礎(chǔ)上發(fā)展起來的。Sockets原

      是BSD為了Unix支持互聯(lián)網(wǎng)通信而設(shè)計(jì)的4.3BSD Unix版本中的API,它采用客戶-服務(wù)器

      模式的通信機(jī)制,使網(wǎng)絡(luò)客戶方和服務(wù)器方通過Sockets實(shí)現(xiàn)網(wǎng)絡(luò)之間的聯(lián)接和數(shù)據(jù)交

      換;Win dows Sockets描述定義了一個(gè)Microsoft Windows的網(wǎng)絡(luò)編程界面,它為

      Windows TCP/IP 提供了一個(gè)BSD型套接字,除與4.3BSD Unix Sockets完全兼容外,還

      包括一個(gè)擴(kuò)充文件,通過一組附加的API實(shí)現(xiàn)Windows式(即事件驅(qū)動(dòng))的編程風(fēng)格;而

      Winsock 95則是在Microsoft Windows 95中進(jìn)行網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)的接口。Windows 95

      在Internet支配域中的TCP /IP協(xié)議定義了Winsock 95網(wǎng)絡(luò)編程規(guī)范,溶入了許多新特點(diǎn)。

      MFC中提供了相應(yīng)的CSock et類來實(shí)現(xiàn)網(wǎng)絡(luò)通信。Sockets編程原理

      Sockets同時(shí)支持?jǐn)?shù)據(jù)流Sockets和數(shù)據(jù)報(bào)Sockets。

      下面是利用Socket進(jìn)行通信連接的過程框圖。其中圖1是面向連接的時(shí)序圖,圖2是

      無連接的時(shí)序圖。

      圖1

      圖2

      由圖可以看出,客戶與服務(wù)器的關(guān)系是不對稱的。對于TCP C/S,服務(wù)器首先啟動(dòng),然后在某一時(shí)刻啟動(dòng)客戶與服務(wù)器建立連接。服務(wù)器與客戶開始都必須調(diào)用socket()

      建立一個(gè)套接字socket,然后服務(wù)器調(diào)用bind()將套接字與一個(gè)本地網(wǎng)絡(luò)地址捆扎在一

      起,再調(diào)用listen()使套接字處于一種被動(dòng)的準(zhǔn)備接收狀態(tài),同時(shí)規(guī)定它的請求隊(duì)列長

      度,之后服務(wù)器就可以調(diào)用accept()來接收客戶連接。客戶打開套接字之后,便可通過

      調(diào)用connect()和服務(wù)器建立連接。連接建立之后,客戶和服務(wù)器之間就可以通過連接

      發(fā)送和接收數(shù)據(jù)。最后,待數(shù)據(jù)傳送結(jié)束,雙方調(diào)用closesocket()關(guān)閉套接字。對于

      UDP C/S,客戶并不與服務(wù)器建立一個(gè)連接,而僅僅給服務(wù)器發(fā)送一張包含服務(wù)器地址的數(shù)據(jù)報(bào)。相似地,服務(wù)器也不從客戶端接收一個(gè)連接,只是調(diào)用函數(shù)recvfrom,等待

      從客戶端來的數(shù)據(jù)。依照recvfrom返回的協(xié)議地址以及數(shù)據(jù)報(bào),服務(wù)器就可以給客戶

      送一個(gè)應(yīng)答。Winsock 95編程方法

      用Visual C++4.2以MFC在Windows 95中實(shí)現(xiàn)網(wǎng)絡(luò)編程,主要就是利用CSocket類及

      其如下相關(guān)成員函數(shù):

      (1)BOOL Create(UINT nSocketPort=0,intnSocketType=SOCK_STREAM,long lEvent=FD_READ|FD_WRITE|FD_OOD|FD_ACCEPT|FD_CONNECT|FD_CLOSE|,LPCTSTR|lpszSocket Address=NULL

      該函數(shù)用來建立Socket。

      (2)BOOL Bind(UINT nSocketPort,LPCTSTRlpszSocketAddess=NULL)該函數(shù)的作用是將Socket端口與網(wǎng)絡(luò)地址連接起來。

      (3)BOOL Listen(intnConnectionBacklog=5)

      該函數(shù)的作用是等待Socket請求。

      (4)Virtual BOOL

      Accept(CAsyncSocket&rConnectedSocket,Socket,SOCKADDR*

      lpSockAddr=NULL,int * lpSockAddrLen=NULL)

      該函數(shù)的作用是取得隊(duì)列上第一個(gè)連接請求并建立一個(gè)具有與Socket相同特性的套接字。

      (5)BOOL Connect(LPCTSTR lpszHostAddress,UINTnHostPort)

      該函數(shù)的作用是提出請求。其中,lpszHostAddress和nHostPort為接受請求進(jìn)

      程的網(wǎng)絡(luò)地址和Socket端口號(hào)。

      (6)virtual void Close()該函數(shù)的作用是關(guān)閉Socket。

      使用以上類及成員函數(shù),按照以下步驟,就可以設(shè)計(jì)出合適的通信程序: Server:Construct→Creat→Bind→Listen→Accept→Send→Close;

      Client:Constuct→Creat→Connect→Receive→Close。程序?qū)嵗?/p>

      我們用Visual C++4.2中MFC在Windows 95環(huán)境下設(shè)計(jì)了一個(gè)daytime cliont程序,清單如下:

      頭文件HEAD.H內(nèi)容:

      #define IDM_STRAT 200

      #define IDM_EDIT 200

      classMainwnd:publicCFrameWnd

      {public:Mainwnd();

      afx_msgintOnCreat(LPCREATESTRUCT);

      afx_msg void OnStart(void);

      DECLARE_MESSAGE_MAP();

      private:CstaticCSStatic;

      CEditLineEdit;

      CButtenStartButton;};

      classPengApp:publicCWinApp

      {public:BOOLInitInstance();}

      源程序Client.CPP清單:

      #include

      #include

      #include “head.h”

      constintnPort=13;

      PengApptheApp;

      Main Wnd:MainWnd()

      {if(!Create(NULL,“CommunicationProgram”,WS_OVERLAPPEDW INDOW,rectDefaul t))AfxAbort();}

      intMainwnd:OnCreate(LPCREATESTRUCT)

      {Rectrect;SetRect(& rect,80,50,160,70);

      Create(“Host Name:”,WS_CHILD|WS_VISIBLE|SS_LEFT,rect,thi s);

      SetRect(& rect,60,80,180,100);

      LineEdit.Create(WS_CHILD|WS_VISIBLE|WS_DLGFRAME|ES_LEFT, rect,this,IDM_ED IT);

      SetRect(&rect,100,120,140,140);

      StartButton,Create(“start”,WS_CHILD|VS_VISIBLE|BS_PUSHBU TTON,rect,this,I DM_START);

      return 0;}

      BEGIN_MESSAGE_MAP(Main Wnd,CFrameWnd)

      ON_WM_CREATE()

      ON_BN_CLICKED(IDM_START,OnStart)

      END_MESSAGE_MAP()

      BOOL ControlApp:InitInstance()

      {m_pMainWnd=new Main Wnd();

      m_pMainWnd→ShowWindow(m_nCmdShow);

      m_pMainWnd→UpdateWindow();

      return;}

      Void Main Wnd:Onstart(void)

      {CSocketTimeClient;

      if(!AfxSocketInit())MessageBox(“WindowsSocket initialfailed!”,“Receive”,MB_ICONSTOP);

      if(!TimeClient.Create())MessageBox(“ReceiveSocketcrea te failed”,“Receive”,MB_I(ON)STOP);

      elseTimeClient.connect(strAddr,nPort);

      TimeClient.ReceiveFrom(csReceiveText,csCounts,LineEdit.G etWinText,nPort)

      MessageBox(TimeClient.csReceiveText);

      TimeClient.Close();}

      第四篇:控制器市場分析

      控制器市場分析

      控制器作為電動(dòng)車的主要的關(guān)鍵零部件,他們之間是完全互補(bǔ)品的關(guān)系,電動(dòng)車控制器的需求不僅僅來自于新增產(chǎn)能的零配件市場,同時(shí)也有來自與維修市場,根據(jù)慣例,電動(dòng)車控制器在維修市場的需求大概為存量的5%-10%。因此總的市場需求量考慮到電動(dòng)車的使用壽命,進(jìn)入維修市場的電動(dòng)車的存量應(yīng)該為前五年市場銷量之和5%-10%?;谝韵聨c(diǎn)我國的自動(dòng)控制器的裝配自行車年均增長10%。

      1、根據(jù)我國2010年的產(chǎn)業(yè)政策規(guī)劃,本將出臺(tái)相關(guān)的行業(yè)政策和行業(yè)標(biāo)準(zhǔn),政策逐步明朗。

      2、我國在2010年將電動(dòng)自行車列為了家電鄉(xiāng)下的補(bǔ)貼電器之一。因此此舉將大幅促進(jìn)我國電動(dòng)自行車在農(nóng)村市場的消費(fèi)。

      3、國內(nèi)電動(dòng)車控制器呈兩極分化發(fā)展趨勢,以高標(biāo)科技為首的品牌化發(fā)展之路,面向中高端市場,推出高質(zhì)量、高科技、高水準(zhǔn)的產(chǎn)品,在市場經(jīng)濟(jì)中性價(jià)比極高;以一些雜牌為主,價(jià)格低廉,產(chǎn)品質(zhì)量沒有固定標(biāo)準(zhǔn),生產(chǎn)成本極低,以低價(jià)格的優(yōu)勢在市場上占據(jù)一定份額。

      3、我國2010年上半年的數(shù)據(jù)顯示我國在上半年電動(dòng)自行車產(chǎn)量同比增長

      8.9%。

      4、今后三年內(nèi)電動(dòng)車由于產(chǎn)品升級也逐步進(jìn)入更新?lián)Q代期,同時(shí)產(chǎn)業(yè)升級主要關(guān)鍵部件的升級如控制器、動(dòng)力電源、電機(jī)的升級,解決產(chǎn)業(yè)困局,控制器等關(guān)鍵技術(shù)的升級至關(guān)重要。

      第五篇:計(jì)算機(jī)網(wǎng)絡(luò) 課程設(shè)計(jì) 發(fā)送TCP數(shù)據(jù)包

      課設(shè)名稱:發(fā)送TCP數(shù)據(jù)包

      班級:

      學(xué)號(hào):

      姓名:

      指導(dǎo)老師: 日期: 2012.6.15

      計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告

      目錄

      一.設(shè)計(jì)題目與要求........................................................................................................2

      1.設(shè)計(jì)題目................................................................................................................2

      2.設(shè)計(jì)要求................................................................................................................2

      二.需求分析...................................................................................................................2三.詳細(xì)設(shè)計(jì)...................................................................................................................2

      1.創(chuàng)建一個(gè)原始套接字,并設(shè)置IP頭選項(xiàng).................................................................3

      2.構(gòu)造IP頭和TCP頭...............................................................................................3

      3.計(jì)算校驗(yàn)和的子函數(shù)..............................................................................................4

      4.流程圖...................................................................................................................6

      四.調(diào)試分析...................................................................................................................7

      五.運(yùn)行結(jié)果...................................................................................................................7

      六.總結(jié)..........................................................................................................................8

      七.源程序......................................................................................................................9

      發(fā)送TCP數(shù)據(jù)包

      一.設(shè)計(jì)題目與要求

      1.設(shè)計(jì)題目

      發(fā)送TCP數(shù)據(jù)包 2.設(shè)計(jì)要求

      本設(shè)計(jì)的功能是填充一個(gè)TCP數(shù)據(jù)包,并發(fā)送給目的主機(jī)。

      1)以命令行形式運(yùn)行:TCP source_ip source_port dest_ip dest_port,其中SendTCP是程序名,source_ip為源端IP地址,source_port為源端口號(hào),dest_ip為目的地址,dest_port為目的端口號(hào)。

      2)其他的TCP頭部參數(shù)請自行設(shè)定。3)數(shù)據(jù)字段為“hello”。

      4)成功發(fā)送后在屏幕上輸出“send OK”。

      二.需求分析

      1.本程序需完成發(fā)送一個(gè)TCP數(shù)據(jù)包給目的主機(jī)

      2.程序的輸入:TCP source_ip source_port dest_ip dest_port,然后根據(jù)提示輸入要發(fā)送的數(shù)據(jù),回車即可。

      3.程序的輸出:Send OK!

      4.測試數(shù)據(jù) TCP 192.168.1.100 200 192.168.1.101 200

      三.詳細(xì)設(shè)計(jì)

      本課程設(shè)計(jì)的目標(biāo)是發(fā)送一個(gè)TCP數(shù)據(jù)包,可以利用原始套接字來完成這個(gè)工作。整個(gè)程序由初始化原始套接字和發(fā)送TCP數(shù)據(jù)包兩個(gè)部分組成。

      2發(fā)送TCP數(shù)據(jù)包

      1.創(chuàng)建一個(gè)原始套接字,并設(shè)置IP頭選項(xiàng)

      SOCKET sock;sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP);或者:

      sock=WSASoccket(AF_INET,SOCK_RAW,IPPROTO_IP,NULL,0,WSA_FLAG_OVERLAPPED);這里,設(shè)置了SOCK_RAW標(biāo)志,表示我們聲明的是一個(gè)原始套接字類型。為使用發(fā)送接收超時(shí)設(shè)置,必須將標(biāo)志位置位置為WSA_FLAG_OVERLAPPED。在本課程設(shè)計(jì)中,發(fā)送TCP包時(shí)隱藏了自己的IP地址,因此我們要自己填充IP頭,設(shè)置IP頭操作選項(xiàng)。其中flag設(shè)置為ture,并設(shè)定 IP_HDRINCL 選項(xiàng),表明自己來構(gòu)造IP頭。

      setsockopt(sock, IPPROTO_IP, IP_HDRINCL,(char *)&Flag, sizeof(Flag));int timeout=1000; setsockopt(sock, sizeof(timeout));在這里我們使用基本套接字SOL_SOCKET,設(shè)置SO_SNDTIMEO表示使用發(fā)送超時(shí)設(shè)置,超時(shí)時(shí)間設(shè)置為1000ms。2.構(gòu)造IP頭和TCP頭

      這里,IP頭和TCP頭以及TCP偽部的構(gòu)造請參考下面它們的數(shù)據(jù)結(jié)構(gòu)。

      typedef struct _iphdr //定義IP首部 { UCHAR h_lenver;//4位首部長度+4位IP版本號(hào) UCHAR tos;//8位服務(wù)類型TOS

      USHORT total_len;//16位總長度(字節(jié))USHORT ident;//16位標(biāo)識(shí)

      USHORT frag_and_flags;//3位標(biāo)志位 UCHAR ttl;//8位生存時(shí)間 TTL

      UCHAR proto;//8位協(xié)議(TCP, UDP 或其他)

      SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,3發(fā)送TCP數(shù)據(jù)包

      USHORT checksum;//16位IP首部校驗(yàn)和 ULONG sourceIP;//32位源IP地址

      ULONG destIP;//32位目的IP地址

      }IP_HEADER;typedef struct psd_hdr //定義TCP偽首部 { ULONG saddr;ULONG daddr;//源地址 //目的地址

      UCHAR mbz;//沒用 UCHAR ptcl;

      USHORT tcpl;//協(xié)議類型 //TCP長度

      }PSD_HEADER;typedef struct _tcphdr //定義TCP首部 { USHORT th_sport;//16位源端口 USHORT th_dport;//16位目的端口 ULONG th_seq;//32位序列號(hào) ULONG th_ack;//32位確認(rèn)號(hào)

      UCHAR th_lenres;//4位首部長度/6位保留字 UCHAR th_flag;//6位標(biāo)志位 USHORT th_win;//16位窗口大小 USHORT th_sum;//16位校驗(yàn)和 USHORT th_urp;//16位緊急數(shù)據(jù)偏移量

      }TCP_HEADER;

      3.計(jì)算校驗(yàn)和的子函數(shù)

      在填充數(shù)據(jù)包的過程中,需要調(diào)用計(jì)算校驗(yàn)和的函數(shù)checksum兩次,分別用于校驗(yàn)IP頭和TCP頭部(加上偽頭部),其實(shí)現(xiàn)代碼如下:

      USHORT checksum(USHORT *buffer, int size)

      4發(fā)送TCP數(shù)據(jù)包

      { unsigned long cksum=0;while(size >1){ cksum+=*buffer++;size-=sizeof(USHORT);} if(size){ cksum += *(UCHAR*)buffer;} cksum =(cksum >> 16)+(cksum & 0xffff);cksum +=(cksum >>16);return(USHORT)(~cksum);}

      5發(fā)送TCP數(shù)據(jù)包

      4.流程圖

      開始構(gòu)造原始套接字并初始化填充IP首部計(jì)算IP首部校驗(yàn)和構(gòu)造TCP偽首部填充TCP首部計(jì)算TCP首部校驗(yàn)和填充發(fā)送緩沖區(qū)填入目的地址發(fā)送數(shù)據(jù)包結(jié)束

      6發(fā)送TCP數(shù)據(jù)包

      四.調(diào)試分析

      本程序流程簡單,調(diào)試過程中沒有出現(xiàn)大的問題。

      調(diào)試過程中沒有出現(xiàn)重大的語法錯(cuò)誤,主要是運(yùn)行的結(jié)果不理想,和預(yù)期的結(jié)果有差距。填充數(shù)據(jù)包的程序部分是不容易出錯(cuò)的。至于數(shù)據(jù)包的發(fā)送,由于是利用函數(shù)sendto()來實(shí)現(xiàn)的,而sendto()是面向UDP的,將協(xié)議類型修改為UDP(Header.proto=IPPROTO_UDP;)后,調(diào)試運(yùn)行成功,問題得到解決。

      調(diào)試時(shí),要添加 #include #include #pragma comment(lib,“ws2_32.lib”)不然編譯出錯(cuò)。

      五.運(yùn)行結(jié)果

      1.輸入:TCP 192.168.1.100 200 192.168.1.101 200

      7發(fā)送TCP數(shù)據(jù)包

      2.輸入要發(fā)送的字符串:“hello”按Ctrl+Z發(fā)送

      六.總結(jié)

      通過本次課程設(shè)計(jì),我對發(fā)送TCP數(shù)據(jù)包的原理有了一定的了解。理解了TCP數(shù)據(jù)報(bào)的報(bào)文格式、TCP連接時(shí)的三次握手和TCP連接結(jié)束時(shí)的四次握手的過程及它們的作用。此外,在設(shè)計(jì)過程中,通過查閱資料,也讓我對TCP的三大特點(diǎn)(流量控制、差錯(cuò)控制、擁塞控制)有了認(rèn)識(shí)。,在課程設(shè)計(jì)過程中,由于編程知識(shí)的欠缺,使我在課程設(shè)計(jì)過程中不是很順利,編程知識(shí)的欠缺是我的最大障礙,不過,這也給了我動(dòng)力,我會(huì)努力去學(xué)好編程的相關(guān)知識(shí),為以后的學(xué)習(xí)和工作打下基礎(chǔ)。最后,感謝老師安排了此次課程設(shè)計(jì)。

      發(fā)送TCP數(shù)據(jù)包

      七.源程序

      #include #include #include #include #include #include #include #include #pragma comment(lib,“ws2_32.lib”)

      #define IPVER 4 //IP協(xié)議預(yù)定 #define MAX_BUFF_LEN 65500 //發(fā)送緩沖區(qū)最大值

      typedef struct ip_hdr //定義IP首部 {

      UCHAR h_verlen;//4位首部長度,4位IP版本號(hào) UCHAR tos;//8位服務(wù)類型TOS USHORT total_len;//16位總長度(字節(jié))USHORT ident;//16位標(biāo)識(shí) USHORT frag_and_flags;//3位標(biāo)志位 UCHAR ttl;//8位生存時(shí)間 TTL UCHAR proto;//8位協(xié)議(TCP, UDP 或其他)USHORT checksum;//16位IP首部校驗(yàn)和 ULONG sourceIP;//32位源IP地址 ULONG destIP;//32位目的IP地址

      發(fā)送TCP數(shù)據(jù)包

      }IP_HEADER;

      typedef struct tsd_hdr //定義TCP偽首部 {

      ULONG saddr;//源地址 ULONG daddr;//目的地址 UCHAR mbz;//沒用 UCHAR ptcl;//協(xié)議類型 USHORT tcpl;//TCP長度

      }PSD_HEADER;

      typedef struct tcp_hdr //定義TCP首部 {

      USHORT th_sport;//16位源端口 USHORT th_dport;//16位目的端口 ULONG th_seq;//32位序列號(hào) ULONG th_ack;//32位確認(rèn)號(hào)

      UCHAR th_lenres;//4位首部長度/6位保留字 UCHAR th_flag;//6位標(biāo)志位 USHORT th_win;//16位窗口大小 USHORT th_sum;//16位校驗(yàn)和

      USHORT th_urp;//16位緊急數(shù)據(jù)偏移量

      }TCP_HEADER;

      //CheckSum:計(jì)算校驗(yàn)和的子函數(shù)

      USHORT checksum(USHORT *buffer, int size){ unsigned long cksum=0;while(size >1)

      發(fā)送TCP數(shù)據(jù)包

      { cksum+=*buffer++;size-=sizeof(USHORT);} if(size){ cksum += *(UCHAR*)buffer;} cksum =(cksum >> 16)+(cksum & 0xffff);cksum +=(cksum >>16);return(USHORT)(~cksum);}

      int ReadData(char *str,int maxlen){ int readlen=0;char ch=NULL;if(str==NULL||maxlen<=0){

      printf(“ReadData Error!!n”);

      return 0;//failed } printf(“Input Data(End By Ctrl+Z): n”);while(maxlen){

      ch=getchar();

      if(ch==EOF)break;

      str[readlen++]=ch;maxlen--;

      發(fā)送TCP數(shù)據(jù)包

      } } str[readlen]=NULL;return readlen;int main(int argc, char* argv[]){ WSADATA WSAData;SOCKET sock;

      IP_HEADER ipHeader;TCP_HEADER tcpHeader;PSD_HEADER psdHeader;

      char Sendto_Buff[MAX_BUFF_LEN];//發(fā)送緩沖區(qū)

      unsigned short check_Buff[MAX_BUFF_LEN];//檢驗(yàn)和緩沖區(qū) char tcp_send_data[1000];

      BOOL flag;int rect,nTimeOver;if(argc!= 5){ printf(“Usage: SendTcp soruce_ip source_port dest_ip dest_port n”);return false;} read_data_len=ReadData(tcp_send_data,1000);int read_data_len=0;

      發(fā)送TCP數(shù)據(jù)包

      if(read_data_len<=0)return 1;

      if(WSAStartup(MAKEWORD(2,2), &WSAData)!=0){ printf(“WSAStartup Error!n”);return false;} if((sock=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0, WSA_FLAG_OVERLAPPED))==INVALID_SOCKET){ printf(“Socket Setup Error!n”);return false;} flag=true;if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag))==SOCKET_ERROR){ printf(“setsockopt IP_HDRINCL error!n”);return false;} nTimeOver=1000;if(setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO,(char*)&nTimeOver, sizeof(nTimeOver))==SOCKET_ERROR){ printf(“setsockopt SO_SNDTIMEO error!n”);return false;}

      發(fā)送TCP數(shù)據(jù)包

      //填充IP首部

      ipHeader.h_verlen=(IPVER<<4 | sizeof(ipHeader)/sizeof(unsigned long));ipHeader.tos=(UCHAR)0;ipHeader.total_len=htons((unsigned short)sizeof(ipHeader)+sizeof(tcpHeader)+read_data_len);ipHeader.ident=0;//16位標(biāo)識(shí) ipHeader.frag_and_flags=0;//3位標(biāo)志位 ipHeader.ttl=128;//8位生存時(shí)間 ipHeader.proto=IPPROTO_TCP;//協(xié)議類型 ipHeader.checksum=0;//檢驗(yàn)和暫時(shí)為0 ipHeader.sourceIP=inet_addr(argv[1]);//32位源IP地址 ipHeader.destIP=inet_addr(argv[3]);//32位目的IP地址

      //計(jì)算IP頭部檢驗(yàn)和

      memset(check_Buff,0,MAX_BUFF_LEN);memcpy(check_Buff,&ipHeader,sizeof(IP_HEADER));ipHeader.checksum=checksum(check_Buff,sizeof(IP_HEADER));

      //構(gòu)造TCP偽首部

      psdHeader.saddr=ipHeader.sourceIP;psdHeader.daddr=ipHeader.destIP;psdHeader.mbz=0;psdHeader.ptcl=ipHeader.proto;psdHeader.tcpl=htons(sizeof(TCP_HEADER)+read_data_len);

      //填充TCP首部

      tcpHeader.th_dport=htons(atoi(argv[4]));//16位目的端口號(hào) tcpHeader.th_sport=htons(atoi(argv[2]));//16位源端口號(hào)

      發(fā)送TCP數(shù)據(jù)包

      tcpHeader.th_seq=0;//SYN序列號(hào) tcpHeader.th_ack=0;//ACK序列號(hào)置為0 //TCP長度和保留位

      tcpHeader.th_lenres=(sizeof(tcpHeader)/sizeof(unsigned long)<<4|0);tcpHeader.th_flag=2;//修改這里來實(shí)現(xiàn)不同的標(biāo)志位探測,2是SYN,1是//FIN,16是ACK探測 等等

      tcpHeader.th_win=htons((unsigned short)16384);//窗口大小 tcpHeader.th_urp=0;//偏移大小 tcpHeader.th_sum=0;//檢驗(yàn)和暫時(shí)填為0

      //計(jì)算TCP校驗(yàn)和

      memset(check_Buff,0,MAX_BUFF_LEN);memcpy(check_Buff,&psdHeader,sizeof(psdHeader));

      memcpy(check_Buff+sizeof(psdHeader),&tcpHeader,sizeof(tcpHeader));

      //填充發(fā)送緩沖區(qū)

      memset(Sendto_Buff,0,MAX_BUFF_LEN);memcpy(Sendto_Buff,&ipHeader,sizeof(IP_HEADER));

      memcpy(Sendto_Buff+sizeof(IP_HEADER), &tcpHeader,sizeof(TCP_HEADER));memcpy(check_Buff+sizeof(PSD_HEADER)+sizeof(TCP_HEADER), tcp_send_data,read_data_len);tcpHeader.th_sum=checksum(check_Buff,sizeof(PSD_HEADER)+ sizeof(TCP_HEADER)+read_data_len);memcpy(Sendto_Buff+sizeof(IP_HEADER)+sizeof(TCP_HEADER), tcp_send_data,read_data_len);

      發(fā)送TCP數(shù)據(jù)包

      int datasize=sizeof(IP_HEADER)+sizeof(TCP_HEADER)+read_data_len;//發(fā)送數(shù)據(jù)報(bào)的目的地址 SOCKADDR_IN dest;memset(&dest,0,sizeof(dest));dest.sin_family=AF_INET;dest.sin_addr.s_addr=inet_addr(argv[3]);dest.sin_port=htons(atoi(argv[4]));

      rect=sendto(sock,Sendto_Buff,datasize, 0,(struct sockaddr*)&dest, sizeof(dest));if(rect==SOCKET_ERROR){ printf(“send error!:%dn”,WSAGetLastError());return false;} else

      closesocket(sock);WSACleanup();return 1;} printf(“nsend ok!n”);

      下載如何升級TCP200控制器[推薦五篇]word格式文檔
      下載如何升級TCP200控制器[推薦五篇].doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        TCP通信總結(jié) ZY5篇

        Qt 中利用 TCP 實(shí)現(xiàn)多個(gè)客戶端之間相互發(fā)送消息系以及服務(wù)器的群發(fā)信息 思路如下:首先每個(gè)客戶端與服務(wù)器相連是會(huì)有一個(gè)對應(yīng)的 Tcpsocket,把這些sockt 全部放入一個(gè) list 容......

        TCP,IP原理與應(yīng)用

        TCP/IP原理與應(yīng)用(專業(yè)限選課) Theory and Application of TCP/IP 【課程編號(hào)】XZ26107 【學(xué)分?jǐn)?shù)】3.5 【學(xué)時(shí)數(shù)】50=46+4 【課程類別】專業(yè)限選 【編寫日期】2010.3.30 【先......

        電動(dòng)車控制器設(shè)計(jì)方案

        電動(dòng)自行車控制器設(shè)計(jì)電動(dòng)自行車控制器方案 2012/11/5 1 電動(dòng)自行車控制器設(shè)計(jì)目錄 第一章 概述 ------------- 3 第二章 系統(tǒng)需求分析 ------- 4 第三章 控制器分析......

        KDS控制器報(bào)告

        申請報(bào)告 設(shè)備動(dòng)力部: 本部一臺(tái)全自動(dòng)地面清洗機(jī)瑞捷X8型在正常清洗地面時(shí),突然發(fā)生不能運(yùn)行,經(jīng)廠家專業(yè)維修人員檢查后,確認(rèn)為此機(jī)的控制器已壞。型號(hào)為KDS控制器,需請貴部幫助......

        struts2_控制器介紹

        struts2 控制器介紹 核心控制器FilterDispatcher 核心控制器FilterDispatcher是Struts 2框架的基礎(chǔ),包含了框架內(nèi)部的控制流程和處理機(jī)制。業(yè)務(wù)控制器Action和業(yè)務(wù)邏輯組件......

        控制器產(chǎn)品檢驗(yàn)標(biāo)準(zhǔn)

        1.0目的為使本公司生產(chǎn)的控制器及驅(qū)動(dòng)器產(chǎn)品之半成品制作、成品入庫、出貨檢驗(yàn)作業(yè)有所依據(jù),特定此檢驗(yàn)規(guī)范。2.0適用范圍本規(guī)范適用于控制器及驅(qū)動(dòng)器產(chǎn)品生產(chǎn)的制程中檢驗(yàn)、......

        電動(dòng)車控制器介紹

        電動(dòng)車控制器介紹 電動(dòng)車控制器是用來控制電動(dòng)車電機(jī)的啟動(dòng)、運(yùn)行、進(jìn)退、速度、停止以及電動(dòng)車的其它電子器件的核心控制器件,它就象是電動(dòng)車的大腦,是電動(dòng)車上重要的部件。......

        智能控制器簡介

        蘇州工業(yè)園區(qū)蘇容電氣有限公司 智能控制器簡介 電子智能控制器行業(yè)是技術(shù)密集型和知識(shí)密集型相結(jié)合的產(chǎn)業(yè)。電子智能控制器是指在儀器、設(shè)備、裝置、系統(tǒng)中為實(shí)現(xiàn)電子控制,而......