亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? net_tcp.c

?? 本程序功能為在FPGA上nios處理器的網卡接口程序。
?? C
字號:
#include "stdio.h"
#include "alt_types.h"


void IP_TCP(void)       //tcp協議處理程序
{

   TCP_Symbol_Receive=Receive_Buffer[Start_TCP+13]&0x3f;  //接收到的TCP標志
   //printf("\nTCP_Symbole_Receive = 0x%4x\n",TCP_Symbol_Receive);

   /*
   0x01   FIN   發端完成發送任務
   0x02   SYN   同步序號用來發起一個連接
   0x04   RST   重建連接
   0x08   PSH   接收方應該盡快將這個報文段交給應用層
   0x10   ACK   確認序號有效
   0x20   URG   緊急指針(urgent pointer)有效*/

   TCP_Port_O=Receive_Buffer[Start_TCP+0]*256+Receive_Buffer[Start_TCP+1];  //外部端口號
   TCP_Port  =Receive_Buffer[Start_TCP+2]*256+Receive_Buffer[Start_TCP+3];  //本地端口號

   TCP_ISN_O =Change_UCHAR_UINT(Receive_Buffer,Start_TCP+4);   //外部ISN
   //printf("TCP_ISN_O =%u\n",TCP_ISN_O);

   TCP_ISN_OA=Change_UCHAR_UINT(Receive_Buffer,Start_TCP+8);   //外部確認ISN


   Receive_PACK_HTTP_Len=Receive_Buffer[Start_IP+2]*0x100+Receive_Buffer[Start_IP+3]-(Receive_Buffer[Start_TCP+12]/0x10)*4-20;

   switch(TCP_State)
   {
      case 0:  //初始狀態,等待被動連接
         if((TCP_Symbol_Receive&0x02)==0x02)  //Symbol = SYN
         {
            TCP_ISN_A=TCP_ISN_O+1;
            TCP_Symbol_Send=0x12;   //SYN,ACK
            Send_TCP_PACK();    //Send SYN,ACK 發送被動連接的第2次握手信號
            TCP_ISN++;
            TCP_State=1;
         }
         break;
      case 1:  //等待被動連接的第3次握手
         if((TCP_Symbol_Receive&0x10)==0x10)  //Symbol = ACK
            //if(TCP_ISN_OA==ISN);  //被動連接第3次握手信號有效
            TCP_State=2;
         break;
      case 2:  //正常傳輸狀態,或等待被動斷開
         if((TCP_Symbol_Receive&0x01)==0x01)  //Symbol = FIN
         {
            TCP_ISN_A=TCP_ISN_O+1;
            TCP_Symbol_Send=0x10;  //ASK
            Send_TCP_PACK();  //發送被動斷開的第2次握手信號

            TCP_Symbol_Send=0x11;  //?  似乎可以改成0x01
            Send_TCP_PACK();  //發送被動斷開的第3次握手信號
            TCP_ISN++;

            TCP_State=3;
         }
         else
            //printf("調用應用處理程序\n");
            if(TCP_Port==80)  //? 按照要求需要判斷http包是否是GET請求信號,不僅僅是判斷端口
            {
               APP_HTTP();    //調用HTTP處理程序
               //Send_HTTP_Response();  //發送HTTP的請求響應包
               //TCP_State=6;
            }
         break;
      case 3:   //在被動斷開情況下,等待第4次握手
         if((TCP_Symbol_Receive&0x10)==0x10)  //Symbol = ACK
            //if(TCP_ISN_OA==TCP_ISN);  //判斷被動斷開情況下,第4次握手是否有效
            TCP_State=0;
         break;
      case 4:  //在主動斷開情況下,等待第2次握手
         if((TCP_Symbol_Receive&0x10)==0x10)  //Symbol = ACK
            //if(TCP_ISN_OA==TCP_ISN);  //判斷主動斷開情況下,第2次握手信號是否有效
            TCP_State=5;
         break;
      case 5:  //在主動斷開情況下,等待第3次握手
         if((TCP_Symbol_Receive&0x01)==0x01)  //Symbol = FIN
         {
            TCP_ISN_A=TCP_ISN_O+1;
            TCP_Symbol_Send=0x10;  //ACK
            Send_TCP_PACK();  //在主動斷開情況下,發送第4次握手信號
            TCP_State=0;
         }
         break;
      case 6:  //等待HTTP響應的ACK
         if((TCP_Symbol_Receive&0x10)==0x10)  //Symbol = ACK
         {
            //if(TCP_ISN_OA==TCP_ISN);  //判斷http連接中,發送的http頭是否被收到
            Send_HTTP_Content();  //發送HTTP內容數據包
            TCP_State=7;
         }
         break;
      case 7:  //等待HTTP內容的ACK
         if((TCP_Symbol_Receive&0x10)==0x10)  //Symbol = ACK
         {
            //if(TCP_ISN_OA==TCP_ISN);  //判斷http連接中,發送的http內容是否被收到
            TCP_Symbol_Send=0x01;  //FIN
            TCP_ISN_A=TCP_ISN_O;
            Send_TCP_PACK();  //發送FIN數據包
            TCP_ISN++;
            TCP_State=4;
         }
         break;


   }
   //printf("TCP狀態  =  %d\n",TCP_State);
}

void Send_TCP_PACK(void)  //發送TCP連接用的標志數據包
{
   UINT Len=Start_TCP,Bogus_Len=0;
   UINT i,Head_Len,Data_SUM;
   UCHAR TCP_Bogus_Head[12];
   for(i=0;i<2;i++)
      Send_Buffer[Len++]=Receive_Buffer[Len+2];  //16位源端口號
   for(i=0;i<2;i++)
      Send_Buffer[Len++]=Receive_Buffer[Len-2];  //16位目的端口號

   Change_UINT_UCHAR(Send_Buffer,Len,TCP_ISN);  //32位序號
   Len+=4;

   Change_UINT_UCHAR(Send_Buffer,Len,TCP_ISN_A); //32位確認序號
   Len+=4;



   Send_Buffer[Len++]=Receive_Buffer[Len];  //4位首部長度和前4位保留
   //Send_Buffer[Len++]=0x70;
   //printf("首部長度<<4后的結果  =  %x",Receive_Buffer[Len]);
   Send_Buffer[Len++]=TCP_Symbol_Send;  //后2位保留,6個標志位

   for(i=0;i<2;i++)
      Send_Buffer[Len++]=Receive_Buffer[Len];  //16位窗口大小

   for(i=0;i<2;i++)
      Send_Buffer[Len++]=0;  //16位校驗和,先設置為0

   for(i=0;i<2;i++)
      Send_Buffer[Len++]=0;  //16位緊急指針

   Head_Len=(Receive_Buffer[Start_TCP+12]/0x10)*4;
   if(Head_Len>20)
      for(i=0;i<Head_Len-20;i++)
         Send_Buffer[Len++]=Receive_Buffer[Len];  //選項數據

   //設置TCP的偽首部
   for(i=0;i<4;i++)
      TCP_Bogus_Head[Bogus_Len++]=IP_Addr[i];
   for(i=0;i<4;i++)
      TCP_Bogus_Head[Bogus_Len++]=IP_O_Addr[i];
   TCP_Bogus_Head[Bogus_Len++]=0;
   TCP_Bogus_Head[Bogus_Len++]=6;
   TCP_Bogus_Head[Bogus_Len++]=Head_Len/0x100;
   TCP_Bogus_Head[Bogus_Len++]=Head_Len&0xff;

   Data_SUM=CHECK_SUM(TCP_Bogus_Head,0,12)&0xffff;       //偽首部的校驗和

   Data_SUM+=CHECK_SUM(Send_Buffer,Start_TCP,Head_Len)&0xffff; //TCP首部校驗和

   Data_SUM=(Data_SUM/0x10000)+(Data_SUM&0xffff);
   Data_SUM+=Data_SUM/0x10000;


   Send_Buffer[Start_TCP+16]=Data_SUM/0x100;
   Send_Buffer[Start_TCP+17]=Data_SUM&0xff;

   IP_PACK_Len=Head_Len+20;
   HEAD_IP();   //IP首部

   HEAD_Ethernet();   //以太網首部

   NET_Send_Packet(Send_Buffer,Len);  //發送數據包
}

void Change_UINT_UCHAR(UCHAR *Buffer,UINT Start,UINT Data)   //將一個32位的數據轉換成4個8位的數組
{
   Buffer[Start+0]=(Data/0x1000000)&0xff; //32位確認序號
   Buffer[Start+1]=(Data/0x10000)&0xff;
   Buffer[Start+2]=(Data/0x100)&0xff;
   Buffer[Start+3]=Data&0xff;
}

UINT Change_UCHAR_UINT(UCHAR *Buffer,UINT Start)   //數據轉換,將4個8位數組轉換成一個32位無符號整數
{
   UINT Data;
   Data =Buffer[Start+3];
   Data+=Buffer[Start+2]*0x100;
   Data+=Buffer[Start+1]*0x10000;
   Data+=Buffer[Start+0]*0x1000000;
   return Data;
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久一二三区| 欧美日韩亚洲高清一区二区| 久久蜜桃一区二区| 精品亚洲成a人| 精品福利在线导航| 国产中文一区二区三区| 日本一区二区三区四区| 99免费精品在线观看| 亚洲视频一区在线| 欧美专区日韩专区| 天天av天天翘天天综合网色鬼国产| 精品污污网站免费看| 婷婷国产v国产偷v亚洲高清| 91精品视频网| 国产激情视频一区二区三区欧美 | 日韩女优av电影| 日本免费新一区视频| 精品福利av导航| 99亚偷拍自图区亚洲| 一区二区三区欧美亚洲| 欧美美女直播网站| 国模娜娜一区二区三区| 国产精品狼人久久影院观看方式| 日本韩国欧美国产| 美国十次了思思久久精品导航| 久久久精品国产免大香伊| av激情亚洲男人天堂| 五月天一区二区| 精品国产青草久久久久福利| 成人一二三区视频| 亚洲国产精品综合小说图片区| 精品久久久三级丝袜| 91亚洲国产成人精品一区二区三| 日韩中文字幕91| 日韩成人免费看| 中文久久乱码一区二区| 欧美视频在线一区二区三区| 国产资源在线一区| 亚洲国产成人av网| 国产精品理伦片| 日韩欧美国产1| 色香蕉成人二区免费| 国产一区在线看| 亚洲二区在线观看| 国产精品亲子伦对白| 欧美一级二级在线观看| 在线免费观看日韩欧美| 国产乱子伦一区二区三区国色天香| 亚洲欧美怡红院| 欧美一二区视频| 菠萝蜜视频在线观看一区| 久热成人在线视频| 亚洲视频一二三| 精品1区2区在线观看| 色综合天天综合网天天狠天天| 亚洲图片一区二区| 国产精品电影院| 欧美电影免费观看高清完整版在线 | 久久蜜臀精品av| 在线观看91精品国产入口| 国产99久久久久久免费看农村| 亚洲午夜视频在线| 久久久久久久久免费| 91精品福利视频| 99久久婷婷国产综合精品| 看国产成人h片视频| 日韩毛片视频在线看| 久久综合狠狠综合| 欧美日韩精品一区二区三区 | 国产一区在线观看视频| 亚洲一线二线三线视频| 国产日韩欧美高清| 欧美一区二区三区四区五区| 色婷婷国产精品| 国产黄色精品视频| 久久精品免费看| 午夜欧美一区二区三区在线播放| 国产精品久久久久天堂| 国产清纯在线一区二区www| 视频一区视频二区中文| 一区二区三区高清不卡| 日韩丝袜情趣美女图片| 欧美日韩中字一区| 欧美在线制服丝袜| 91浏览器在线视频| 成人黄色片在线观看| 精品亚洲成av人在线观看| 麻豆国产91在线播放| 亚洲一区二区三区四区在线观看| 国产剧情一区二区三区| 日本三级亚洲精品| 亚洲国产aⅴ成人精品无吗| 一区二区中文字幕在线| 国产精品久久久久一区| 国产精品情趣视频| 国产精品久久久久婷婷二区次| 中文字幕欧美日韩一区| 欧美高清一级片在线观看| 欧美激情一二三区| 久久久.com| 综合久久国产九一剧情麻豆| 国产精品妹子av| 中文字幕在线观看不卡| 亚洲日本成人在线观看| 中文字幕在线不卡一区二区三区| 国产精品视频你懂的| 国产精品丝袜久久久久久app| 中文字幕av资源一区| 国产精品国模大尺度视频| 亚洲少妇30p| 亚洲一区二区在线免费观看视频| 亚洲欧美韩国综合色| 亚洲国产一区二区视频| 亚洲国产色一区| 免费一级欧美片在线观看| 久久99精品久久只有精品| 国产激情视频一区二区在线观看| 成人深夜在线观看| 色88888久久久久久影院野外| 91精品办公室少妇高潮对白| 欧美视频第二页| 日韩精品一区二区在线| 国产清纯白嫩初高生在线观看91| 综合色中文字幕| 午夜激情综合网| 九九**精品视频免费播放| 国产一区二区三区观看| 丰满白嫩尤物一区二区| 欧美图片一区二区三区| 欧美成人精品1314www| 国产精品久久久久久久蜜臀| 一区二区三区色| 精品在线播放午夜| 99精品视频免费在线观看| 欧美日韩综合色| 国产精品素人视频| 一区二区三区四区在线免费观看| 国产精品88888| 欧美天堂一区二区三区| 久久蜜桃一区二区| 亚洲影院久久精品| 国产九九视频一区二区三区| 91日韩在线专区| 日韩一级欧美一级| 椎名由奈av一区二区三区| 免费不卡在线观看| 91美女视频网站| 日韩视频一区二区三区| 日本一区二区成人在线| 青青草精品视频| 国产xxx精品视频大全| 欧美精品v国产精品v日韩精品 | 色激情天天射综合网| 精品欧美一区二区久久| 一卡二卡欧美日韩| 国产精品夜夜爽| 欧美精品九九99久久| 青草av.久久免费一区| 色婷婷综合久久久久中文 | 91日韩一区二区三区| 欧美一区二区视频网站| 国产精品初高中害羞小美女文| 蜜桃视频一区二区三区| 欧美综合色免费| 综合久久久久综合| 国产成人综合自拍| 精品国产乱码久久久久久免费| 亚洲一区二区三区在线播放| www.日本不卡| 国产亚洲女人久久久久毛片| 裸体在线国模精品偷拍| 欧美一区二区视频在线观看2020| 亚洲一区二区三区中文字幕在线| 99re亚洲国产精品| 国产精品蜜臀av| 国产成人精品亚洲午夜麻豆| 久久欧美中文字幕| 精品一区二区影视| 日韩精品中文字幕一区二区三区| 亚洲电影在线播放| 欧美日韩国产天堂| 亚洲国产精品天堂| 91成人看片片| 夜夜爽夜夜爽精品视频| 97se亚洲国产综合自在线| 国产精品乱码人人做人人爱 | 久久一区二区三区四区| 美女尤物国产一区| 日韩精品一区二区在线| 日本在线播放一区二区三区| 欧美人成免费网站| 蜜桃视频一区二区三区 | 日韩精品视频网| 精品久久人人做人人爽| 国产中文一区二区三区| 久久精品亚洲国产奇米99| 懂色av噜噜一区二区三区av| 国产欧美精品区一区二区三区| 国产a级毛片一区| 亚洲日本va午夜在线电影|