久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

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

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

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

如何升級TCP200控制器

系統升級包含:控制器軟件升級和電腦軟件升級

控制器軟件升級

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

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

點擊【開始】→【運行】→在輸入框中輸入cmd→點擊【確定】。完成后將會打開cmd命令窗口如圖所示。

在窗口中輸入arp-a(注意空格)→點擊回車鍵。此時,窗口中將會出現此局域網內的其他網絡設備。其中,Internet Address 就是設備的IP地址,Physical Address 就是設備的MAC地址如圖所示

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

LM

Flash

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

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

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

控制器升級完成!

電腦軟件升級

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

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

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

第二篇:TCP 報頭格式

TCP協議頭最少20個字節,包括以下的區域

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

TCP目的端口(Destination port):16位的目的端口域定義傳輸的目的。這個端口指明報文接收計算 機上的應用程序地址接口。

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

TCP應答號(Acknowledgment Number):32位的序列號由接收端計算機使用,重組分段的報文成最初形式。,如果設置了ACK控制位,這個值表示一個準備接收的包的序列碼。

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

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

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

1.URG:緊急標志

緊急(The urgent pointer)標志有效。緊急標志置位,2.ACK:確認標志

確認編號(Acknowledgement Number)欄有效。大多數情況下該標志位是置位的。TCP報頭內的確認編號欄內包含的確認編號(w+1,Figure:1)為下一個預期的序列編號,同時提示遠端系統已經成功接收所有數據。3.PSH:推標志

該標志置位時,接收端不將該數據進行隊列處理,而是盡可能快將數據轉由應用處理。在處理 telnet 或rlogin 等交互模式的連接時,該標志總是置位的。4.RST:復位標志

復位標志有效。用于復位相應的TCP連接。5.SYN:同步標志

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

帶有該標志置位的數據包用來結束一個TCP回話,但對應端口仍處于開放狀態,準備接收后續數據。

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

校驗位(Checksum):16位TCP頭。源機器基于數據內容計算一個數值,收信息機要與源機器數值 結果完全一樣,從而證明數據的有效性。

優先指針(緊急,Urgent Pointer):16位,指向后面是優先數據的字節,在URG標志設置了時才有效。如果URG標志沒有被設置,緊急域作為填充。加快處理標示為緊急的數據段。

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

數據(Date):應用程序的數據。

第三篇:TCP IP網絡通信程序設計

TCP/IP網絡通信程序設計

本文介紹了TCP/IP網絡應用程序的面向對象設計方法,并給出了用Visual C++4.2

中MFC在Windows 95環境下開發的程序實例。Sockets與Winsock 95

Winsock 95是在Unix Sockets及Windows Sockets基礎上發展起來的。Sockets原

是BSD為了Unix支持互聯網通信而設計的4.3BSD Unix版本中的API,它采用客戶-服務器

模式的通信機制,使網絡客戶方和服務器方通過Sockets實現網絡之間的聯接和數據交

換;Win dows Sockets描述定義了一個Microsoft Windows的網絡編程界面,它為

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

包括一個擴充文件,通過一組附加的API實現Windows式(即事件驅動)的編程風格;而

Winsock 95則是在Microsoft Windows 95中進行網絡應用程序設計的接口。Windows 95

在Internet支配域中的TCP /IP協議定義了Winsock 95網絡編程規范,溶入了許多新特點。

MFC中提供了相應的CSock et類來實現網絡通信。Sockets編程原理

Sockets同時支持數據流Sockets和數據報Sockets。

下面是利用Socket進行通信連接的過程框圖。其中圖1是面向連接的時序圖,圖2是

無連接的時序圖。

圖1

圖2

由圖可以看出,客戶與服務器的關系是不對稱的。對于TCP C/S,服務器首先啟動,然后在某一時刻啟動客戶與服務器建立連接。服務器與客戶開始都必須調用socket()

建立一個套接字socket,然后服務器調用bind()將套接字與一個本地網絡地址捆扎在一

起,再調用listen()使套接字處于一種被動的準備接收狀態,同時規定它的請求隊列長

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

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

發送和接收數據。最后,待數據傳送結束,雙方調用closesocket()關閉套接字。對于

UDP C/S,客戶并不與服務器建立一個連接,而僅僅給服務器發送一張包含服務器地址的數據報。相似地,服務器也不從客戶端接收一個連接,只是調用函數recvfrom,等待

從客戶端來的數據。依照recvfrom返回的協議地址以及數據報,服務器就可以給客戶

送一個應答。Winsock 95編程方法

用Visual C++4.2以MFC在Windows 95中實現網絡編程,主要就是利用CSocket類及

其如下相關成員函數:

(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

該函數用來建立Socket。

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

(3)BOOL Listen(intnConnectionBacklog=5)

該函數的作用是等待Socket請求。

(4)Virtual BOOL

Accept(CAsyncSocket&rConnectedSocket,Socket,SOCKADDR*

lpSockAddr=NULL,int * lpSockAddrLen=NULL)

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

(5)BOOL Connect(LPCTSTR lpszHostAddress,UINTnHostPort)

該函數的作用是提出請求。其中,lpszHostAddress和nHostPort為接受請求進

程的網絡地址和Socket端口號。

(6)virtual void Close()該函數的作用是關閉Socket。

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

Client:Constuct→Creat→Connect→Receive→Close。程序實例

我們用Visual C++4.2中MFC在Windows 95環境下設計了一個daytime cliont程序,清單如下:

頭文件HEAD.H內容:

#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();}

第四篇:控制器市場分析

控制器市場分析

控制器作為電動車的主要的關鍵零部件,他們之間是完全互補品的關系,電動車控制器的需求不僅僅來自于新增產能的零配件市場,同時也有來自與維修市場,根據慣例,電動車控制器在維修市場的需求大概為存量的5%-10%。因此總的市場需求量考慮到電動車的使用壽命,進入維修市場的電動車的存量應該為前五年市場銷量之和5%-10%。基于以下幾點我國的自動控制器的裝配自行車年均增長10%。

1、根據我國2010年的產業政策規劃,本將出臺相關的行業政策和行業標準,政策逐步明朗。

2、我國在2010年將電動自行車列為了家電鄉下的補貼電器之一。因此此舉將大幅促進我國電動自行車在農村市場的消費。

3、國內電動車控制器呈兩極分化發展趨勢,以高標科技為首的品牌化發展之路,面向中高端市場,推出高質量、高科技、高水準的產品,在市場經濟中性價比極高;以一些雜牌為主,價格低廉,產品質量沒有固定標準,生產成本極低,以低價格的優勢在市場上占據一定份額。

3、我國2010年上半年的數據顯示我國在上半年電動自行車產量同比增長

8.9%。

4、今后三年內電動車由于產品升級也逐步進入更新換代期,同時產業升級主要關鍵部件的升級如控制器、動力電源、電機的升級,解決產業困局,控制器等關鍵技術的升級至關重要。

第五篇:計算機網絡 課程設計 發送TCP數據包

課設名稱:發送TCP數據包

班級:

學號:

姓名:

指導老師: 日期: 2012.6.15

計算機網絡課程設計報告

目錄

一.設計題目與要求........................................................................................................2

1.設計題目................................................................................................................2

2.設計要求................................................................................................................2

二.需求分析...................................................................................................................2三.詳細設計...................................................................................................................2

1.創建一個原始套接字,并設置IP頭選項.................................................................3

2.構造IP頭和TCP頭...............................................................................................3

3.計算校驗和的子函數..............................................................................................4

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

四.調試分析...................................................................................................................7

五.運行結果...................................................................................................................7

六.總結..........................................................................................................................8

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

發送TCP數據包

一.設計題目與要求

1.設計題目

發送TCP數據包 2.設計要求

本設計的功能是填充一個TCP數據包,并發送給目的主機。

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

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

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

二.需求分析

1.本程序需完成發送一個TCP數據包給目的主機

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

3.程序的輸出:Send OK!

4.測試數據 TCP 192.168.1.100 200 192.168.1.101 200

三.詳細設計

本課程設計的目標是發送一個TCP數據包,可以利用原始套接字來完成這個工作。整個程序由初始化原始套接字和發送TCP數據包兩個部分組成。

2發送TCP數據包

1.創建一個原始套接字,并設置IP頭選項

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

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

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

這里,IP頭和TCP頭以及TCP偽部的構造請參考下面它們的數據結構。

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

USHORT total_len;//16位總長度(字節)USHORT ident;//16位標識

USHORT frag_and_flags;//3位標志位 UCHAR ttl;//8位生存時間 TTL

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

SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,3發送TCP數據包

USHORT checksum;//16位IP首部校驗和 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;//協議類型 //TCP長度

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

UCHAR th_lenres;//4位首部長度/6位保留字 UCHAR th_flag;//6位標志位 USHORT th_win;//16位窗口大小 USHORT th_sum;//16位校驗和 USHORT th_urp;//16位緊急數據偏移量

}TCP_HEADER;

3.計算校驗和的子函數

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

USHORT checksum(USHORT *buffer, int size)

4發送TCP數據包

{ 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發送TCP數據包

4.流程圖

開始構造原始套接字并初始化填充IP首部計算IP首部校驗和構造TCP偽首部填充TCP首部計算TCP首部校驗和填充發送緩沖區填入目的地址發送數據包結束

6發送TCP數據包

四.調試分析

本程序流程簡單,調試過程中沒有出現大的問題。

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

調試時,要添加 #include #include #pragma comment(lib,“ws2_32.lib”)不然編譯出錯。

五.運行結果

1.輸入:TCP 192.168.1.100 200 192.168.1.101 200

7發送TCP數據包

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

六.總結

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

發送TCP數據包

七.源程序

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

#define IPVER 4 //IP協議預定 #define MAX_BUFF_LEN 65500 //發送緩沖區最大值

typedef struct ip_hdr //定義IP首部 {

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

發送TCP數據包

}IP_HEADER;

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

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

}PSD_HEADER;

typedef struct tcp_hdr //定義TCP首部 {

USHORT th_sport;//16位源端口 USHORT th_dport;//16位目的端口 ULONG th_seq;//32位序列號 ULONG th_ack;//32位確認號

UCHAR th_lenres;//4位首部長度/6位保留字 UCHAR th_flag;//6位標志位 USHORT th_win;//16位窗口大小 USHORT th_sum;//16位校驗和

USHORT th_urp;//16位緊急數據偏移量

}TCP_HEADER;

//CheckSum:計算校驗和的子函數

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

發送TCP數據包

{ 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--;

發送TCP數據包

} } 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];//發送緩沖區

unsigned short check_Buff[MAX_BUFF_LEN];//檢驗和緩沖區 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;

發送TCP數據包

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;}

發送TCP數據包

//填充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位標識 ipHeader.frag_and_flags=0;//3位標志位 ipHeader.ttl=128;//8位生存時間 ipHeader.proto=IPPROTO_TCP;//協議類型 ipHeader.checksum=0;//檢驗和暫時為0 ipHeader.sourceIP=inet_addr(argv[1]);//32位源IP地址 ipHeader.destIP=inet_addr(argv[3]);//32位目的IP地址

//計算IP頭部檢驗和

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

//構造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位目的端口號 tcpHeader.th_sport=htons(atoi(argv[2]));//16位源端口號

發送TCP數據包

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

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

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

//計算TCP校驗和

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

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

//填充發送緩沖區

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);

發送TCP數據包

int datasize=sizeof(IP_HEADER)+sizeof(TCP_HEADER)+read_data_len;//發送數據報的目的地址 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
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    TCP通信總結 ZY5篇

    Qt 中利用 TCP 實現多個客戶端之間相互發送消息系以及服務器的群發信息 思路如下:首先每個客戶端與服務器相連是會有一個對應的 Tcpsocket,把這些sockt 全部放入一個 list 容......

    TCP,IP原理與應用

    TCP/IP原理與應用(專業限選課) Theory and Application of TCP/IP 【課程編號】XZ26107 【學分數】3.5 【學時數】50=46+4 【課程類別】專業限選 【編寫日期】2010.3.30 【先......

    電動車控制器設計方案

    電動自行車控制器設計電動自行車控制器方案 2012/11/5 1 電動自行車控制器設計目錄 第一章 概述 ------------- 3 第二章 系統需求分析 ------- 4 第三章 控制器分析......

    KDS控制器報告

    申請報告 設備動力部: 本部一臺全自動地面清洗機瑞捷X8型在正常清洗地面時,突然發生不能運行,經廠家專業維修人員檢查后,確認為此機的控制器已壞。型號為KDS控制器,需請貴部幫助......

    struts2_控制器介紹

    struts2 控制器介紹 核心控制器FilterDispatcher 核心控制器FilterDispatcher是Struts 2框架的基礎,包含了框架內部的控制流程和處理機制。業務控制器Action和業務邏輯組件......

    控制器產品檢驗標準

    1.0目的為使本公司生產的控制器及驅動器產品之半成品制作、成品入庫、出貨檢驗作業有所依據,特定此檢驗規范。2.0適用范圍本規范適用于控制器及驅動器產品生產的制程中檢驗、......

    電動車控制器介紹

    電動車控制器介紹 電動車控制器是用來控制電動車電機的啟動、運行、進退、速度、停止以及電動車的其它電子器件的核心控制器件,它就象是電動車的大腦,是電動車上重要的部件。......

    智能控制器簡介

    蘇州工業園區蘇容電氣有限公司 智能控制器簡介 電子智能控制器行業是技術密集型和知識密集型相結合的產業。電子智能控制器是指在儀器、設備、裝置、系統中為實現電子控制,而......

主站蜘蛛池模板: 亚洲高清成人aⅴ片在线观看| 扒开腿狂躁女人爽出白浆| 乱子伦一区二区三区| 天无日天天射天天视| 一本一本久久aa综合精品| 96精品久久久久久久久久| 爱色精品视频一区二区| 国产精品内射久久久久欢欢| 波多野结衣av手机在线观看| 欧美三級片黃色三級片黃色| 无码成人精品区在线观看| 国产成人午夜福利在线小电影| 亚洲色大成网站www| 欧产日产国产精品精品| 亚洲人成网亚洲欧洲无码久久| 免费无码av片在线观看潮喷| 亚洲成av人片香蕉片| 女人高潮抽搐喷液30分钟视频| 国产黄在线观看免费观看不卡| 一区二区免费视频中文乱码| 一区二区三区无码高清视频| 国产午夜无码福利在线看网站| 免费无码国产v片在线观看| 97久久人人超碰国产精品| 国偷自产视频一区二区久| 亚洲欧美日韩成人综合网| 国产精品345在线播放| 久久国产中文娱乐网| 中文字幕精品久久久乱码乱码| 亚洲性视频免费视频网站| 国产又色又爽又黄刺激的视频| 无码人妻久久1区2区3区| 国产婷婷色综合av蜜臀av| 亚洲 欧美 综合 在线 精品| 欧美一进一出抽搐大尺度视频| 野外做受又硬又粗又大视频√| 久久99精品久久久久久秒播| 嫖妓丰满肥熟妇在线精品| 国内老熟妇对白xxxxhd| 日本高清成本人视频一区| 国产日韩精品欧美一区喷水|