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

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

?? tcpapp.c

?? 是TCPIP程序
?? C
字號:
/*2003.01.03 modi*/
/* 監聽程序后一切重新開始*/
/* 串口接收修改為一種類似fifo的結構*/
/*在程序里面,判斷是否主動報警,使用這樣一種方法:如果已連接,則使用連接的,否則使用新的*/
//freedom about 4k
#define  ETH_RECV_ADDR   0x1000
//about 2k
#define  ETH_SEND_ADDR   0x1800
//about 2k
#define  SERI_SEND_ADDR  0x2000
//about 4k
#define  SERI_RECE_ADDR  0x3000
//about 8k
#define  SOCKET_ADDR   0x5000
//about 12k


//#define REMO_PORT  8000
//#define LOCAL_PORT 9000
#define tcp_WAITTIMEOUT   60000     /* 可以忍受的最長的等待時間,單位是10ms*/


#include <89c52.h>
#include <iptcp.h>
#include <card.h>
#include <x25045.h>
#include <8019app.h>
#include <dmtcp.h>

//dats in card.h
extern eth_address xdata card_mac;
extern ulong   xdata gate_ip;
extern ulong   xdata local_ip;
extern uint xdata REMO_PORT,LOCAL_PORT;
extern uint xdata baudrate;
extern uchar xdata *mac;

uchar xdata *rcv_hdr;
uchar xdata *recv_eth;
uchar xdata *send_eth;

uchar xdata *seristart;
uchar xdata *seriend;

uint data_send(uchar xdata *data_addr,uint  len,uint  local_port,ulong  destip,uint  remo_port);

bit txok,rxok;
/*txok 從串口上收到數據,要發送給網絡*/
/*rxok 從網絡上收到數據,要發送給串口*/
uchar ser_recving;

tcp_Socket xdata *s;

uchar code  setsip[]={'S','E','T','S','I','P',':'};
uchar code  setsal[]={'S','E','T','S','A','L',':'};

uchar code  setsma[]={'S','E','T','S','M','A',':'};
uchar code  setsgt[]={'S','E','T','S','G','T',':'};
uchar code  setspt[]={'S','E','T','S','P','T',':'};
uchar code  setsbd[] ={'S','E','T','S','B','D',':'};
uchar code  setmask[] = {'S','E','T','S','M','K',':'};/*子網掩碼*/

uchar code  TCP_conf[]  ={'C','O','N','F','T','C','P',':'};
uchar code  UDP_conf[]  ={'C','O','N','F','U','D','P',':'};
/*如果有必要,在發送數據前設置*/

uchar code  setok[10]={'S','E','T','S','B','E','O','K',0x0d,0x0a};
uchar code  err[5]={'E','R','R',0x0d,0x0a};

int main(void)
{
 uchar xdata *datasend;
 uchar idata temp;
 uint idata tempint;
 watchdog(3);//no dog
// writebyte(0,0);
 datasend = 0;
 txok=FALSE;
 rxok=FALSE;
 memset(datasend,0,0x8000);
  mac=0;
 s  =SOCKET_ADDR;
 datasend=SERI_RECE_ADDR;

 recv_eth=ETH_RECV_ADDR;
 rcv_hdr =ETH_RECV_ADDR-SIZE_OF_8019_HDR;
 send_eth=ETH_SEND_ADDR;

 init_card();     //card.h
 init_8019();     //8019app.h
 com_init(); //card.h
 timer0_init_10ms();//time.h

 EA=1;

 tcp_listen(LOCAL_PORT);

 while(1)
  {
   tick();
   if(txok)
    {
     cope_serial();
    }
   if((!rxok)&&(curr_conf.length!=0))
    {
     cope_eth();
    }
  }
}



uint data_send(uchar xdata *data_addr,uint  len,uint  local_port,ulong  destip,uint  remo_port)
 {
//   if(curr_conf.type==UDP_PROTO)return(udp_out(len,data_addr,destip,remo_port));

   if ( s->hisaddr != destip )
    {
     tcp_abort();
    }
   if ( s->state != tcp_StateESTAB )
    {
      destip=alert_ip;
      remo_port=REMO_PORT;
      if ( !tcp_open(local_port,destip,remo_port ))return(0);
      if ( !sock_wait_established(tcp_LONGTIMEOUT))return(0);
    }
   if ( !tcp_write(data_addr,len))return(0);
   while(s->datalen)
    {
     tick();
     if(!chk_timeout(tcp_TIMEOUT))break;
    }
   if((s->state==tcp_StateCLOSED)||(s->state==tcp_StateLISTEN))return(FALSE);
   return(len-s->datalen);
 }

void cope_eth(void)
{
 uchar xdata *addr;
 uchar xdata *f_addr;
 uchar temp;
 addr=SERI_SEND_ADDR;
 f_addr=SERI_RECE_ADDR;

 memcpy(f_addr,setok,10);
 /*如果數據是設置本網絡通的,不發送到串口,向網絡發送設置成功,并初始化板卡*/

 if(curr_conf.length==13)
   {
      /*設置報警ip*/
      if(memcmp (setsal, addr, 7)==0)
       {
         udp_out(10,f_addr,curr_conf.dst_ip,REMO_PORT);

          tcp_abort();
          for(temp=0;temp<4;temp++)
          {
           writebyte(addr[temp+7],temp+25);
          }
         init_card();
         curr_conf.length=0;
         tcp_listen(LOCAL_PORT);
         rxok=FALSE;
         return;
       }


      /*設置ip*/
      if(memcmp (setmask, addr, 7)==0)
        {
         udp_out(10,f_addr,curr_conf.dst_ip,REMO_PORT);
         tcp_abort();
         for(temp=0;temp<4;temp++)
          {
           writebyte(addr[temp+7],temp+29);
          }
         init_card();
         curr_conf.length=0;
         tcp_listen(LOCAL_PORT);
         rxok=FALSE;
         return;
       }
      /*設置ip*/
      if(memcmp (setsip, addr, 7)==0)
        {
         udp_out(10,f_addr,curr_conf.dst_ip,REMO_PORT);
         tcp_abort();
         for(temp=0;temp<4;temp++)
          {
           writebyte(addr[temp+7],temp+5);
          }
         init_card();
         curr_conf.length=0;
         tcp_listen(LOCAL_PORT);
         rxok=FALSE;
         return;
       }
      /*設置網關*/
      if(memcmp (setsgt, addr, 7)==0)
        {
         udp_out(10,f_addr,curr_conf.dst_ip,REMO_PORT);
         tcp_abort();
         for(temp=0;temp<4;temp++)
          {
           writebyte(addr[temp+7],temp+9);
          }
         init_card();
         curr_conf.length=0;
         tcp_listen(LOCAL_PORT);
         rxok=FALSE;
         return;
        }
       /*設置端口*/
      if(memcmp (setspt, addr, 7)==0)
        {
         udp_out(10,f_addr,curr_conf.dst_ip,REMO_PORT);
         tcp_abort();
         for(temp=0;temp<4;temp++)
          {
           writebyte(addr[temp+7],temp+19);
          }
         init_card();
         curr_conf.length=0;
         tcp_listen(LOCAL_PORT);
         rxok=FALSE;
         return;
        }
       /*設置波特率*/
      if(memcmp (setsbd, addr, 7)==0)
        {
         udp_out(10,f_addr,curr_conf.dst_ip,REMO_PORT);
         tcp_abort();
         writebyte(addr[7],23);
         writebyte(addr[8],24);
//           init_card();
         curr_conf.length=0;
         baudrate = addr[7]*0x100+addr[8];
         com_init();
//           tcp_listen(LOCAL_PORT);
         rxok=FALSE;
         return;
        }
      /*設置物理地址*/
      if(memcmp (setsma, addr , 7)==0)
        {
         udp_out(10,f_addr,curr_conf.dst_ip,REMO_PORT);
         tcp_abort();
         for(temp=0;temp<6;temp++)
          {
           writebyte(addr[temp+7],temp+13);
          }
         curr_conf.length=0;
         rxok=FALSE;
         init_card();
         init_8019();
         tcp_listen(LOCAL_PORT);
         return;
      }
    }
   totalnum=curr_conf.length;
   sendnum=0;
   SBUF=addr[0];
   rxok=TRUE;
   while(rxok);
  }


void cope_serial(void)//see  type of serial datas
{
 ulong xdata dst_ip;
 uint bufnum;
 ES = 0;
 bufnum = recenum;
 recenum = 0;
 if(seriend>0x4800)seriend = SERI_RECE_ADDR;/*早變換早安全*/
 ES = 1;
 ser_recving=FALSE;
 if(bufnum>0x1800)/*數據量不可能超過6K*/
  {
    seriend =SERI_RECE_ADDR;
    seristart = SERI_RECE_ADDR;
    bufnum = 0;
    return;
  }

 /*將tcp_conf 和udp_conf一段去掉了*/

   if(!data_send(seristart,bufnum,LOCAL_PORT,curr_conf.dst_ip,REMO_PORT))
    {
//     memcpy(f_addr,err,5);
//     totalnum=5;
//     sendnum=0;
//     SBUF=f_addr[0];
    }
   seristart = seristart + bufnum;
   if(seristart>0x4800)seristart = SERI_RECE_ADDR; /*到了末尾,重新開始*/
   bufnum=0;
   txok=FALSE;
}


void serial(void) interrupt 4
{
 uchar xdata *addr;
  if(RI==1)
   {
//    if(txok)
//    {
//
//     RI=0;return;
//    }
    RI = 0;
    ser_recving=1;
    *(seriend++)=SBUF;
    recenum++;
    if(seriend>=SOCKET_ADDR)seriend = SERI_RECE_ADDR;/*這種現象最好不要出現,*/
    if(recenum>1500)txok = 1;
   }
  if(TI==1)
   {
    addr=SERI_SEND_ADDR;
    TI=0;
    sendnum++;
    if(sendnum>=totalnum)
     {
      s->sending=FALSE;
      curr_conf.length=0;
      rxok=FALSE;
     }
    else SBUF=addr[sendnum];
   }
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品私人影院| 精品一区在线看| 色婷婷av一区二区三区软件| 亚洲精品视频一区| 在线成人av影院| 国产成人av在线影院| 最新久久zyz资源站| 欧美性猛片xxxx免费看久爱| 久久成人麻豆午夜电影| 国产精品入口麻豆九色| 欧美日韩国产在线播放网站| 精彩视频一区二区三区| 一区二区三区四区激情| 久久久久久影视| 欧美三级电影网| 丰满岳乱妇一区二区三区| 亚洲一二三四久久| 国产亚洲综合在线| 7777精品伊人久久久大香线蕉完整版| 国产一区福利在线| 亚洲大片免费看| 国产精品久久看| 精品国产免费人成电影在线观看四季 | 狠狠色丁香久久婷婷综合_中| 国产精品嫩草影院av蜜臀| 5月丁香婷婷综合| 91麻豆免费观看| 国产二区国产一区在线观看 | 欧美日韩久久一区| 成人在线综合网| 国产一区二区不卡| 日本在线播放一区二区三区| 亚洲黄色小说网站| 欧美激情一区二区在线| 日韩精品一区二区在线| 欧美精品免费视频| 欧美日韩第一区日日骚| 在线免费视频一区二区| 成人动漫视频在线| 成人小视频在线观看| 国产美女在线观看一区| 九九视频精品免费| 久久er99热精品一区二区| 日韩av一区二区在线影视| 一区二区三区四区国产精品| 亚洲免费在线看| 亚洲裸体xxx| 亚洲欧美在线aaa| 国产精品黄色在线观看| 国产午夜亚洲精品不卡| 久久久久久免费网| 久久久久88色偷偷免费| 久久久精品日韩欧美| 精品不卡在线视频| 欧美精品一区二区三区在线| 欧美不卡激情三级在线观看| 日韩欧美三级在线| 欧美一区二区视频免费观看| 日韩欧美综合在线| 欧美精品一区二区三| 久久久亚洲国产美女国产盗摄 | 成人精品gif动图一区| 国产精品正在播放| 成人黄色大片在线观看| 99riav久久精品riav| 色欧美日韩亚洲| 欧美人xxxx| 26uuu亚洲| 国产精品成人网| 午夜视频在线观看一区二区| 日本午夜精品视频在线观看| 经典三级一区二区| av中文字幕不卡| 欧美日韩电影在线| 国产亚洲短视频| 亚洲精品视频在线看| 青青草国产精品亚洲专区无| 国产成人啪午夜精品网站男同| 99精品在线观看视频| 5月丁香婷婷综合| 国产精品毛片a∨一区二区三区| 一区二区在线免费观看| 另类小说欧美激情| 99精品国产99久久久久久白柏| 欧美三级蜜桃2在线观看| 精品国产乱码久久久久久免费| 国产精品久久久久影院| 日本三级亚洲精品| 成人av综合在线| 91精品午夜视频| 国产精品国产a| 日韩av网站免费在线| 高清日韩电视剧大全免费| 欧美日韩精品免费| 国产精品情趣视频| 蜜桃精品在线观看| 色国产综合视频| 久久在线观看免费| 亚洲成人精品一区| 暴力调教一区二区三区| 欧美另类久久久品| 久久久综合视频| 午夜激情久久久| 成人sese在线| 久久久精品免费免费| 日韩综合小视频| 欧美伊人精品成人久久综合97 | 亚洲一区在线播放| 国产成人精品三级| 欧美一区二区三区在线视频| 一区二区三区电影在线播| 国产精品一区在线观看乱码 | www.av亚洲| 欧美不卡一区二区| 免费在线观看精品| 欧美日韩国产综合一区二区三区| 亚洲视频狠狠干| 国内久久婷婷综合| 欧美一二区视频| 日本人妖一区二区| 在线电影国产精品| 亚洲午夜成aⅴ人片| av在线不卡免费看| 中文一区二区完整视频在线观看| 国产自产v一区二区三区c| 欧美肥大bbwbbw高潮| 亚洲午夜久久久久中文字幕久| 91亚洲精品久久久蜜桃网站| 国产精品伦理一区二区| av一区二区三区四区| 国产精品成人免费| 91亚洲精华国产精华精华液| 亚洲欧美在线aaa| 色爱区综合激月婷婷| 亚洲国产精品人人做人人爽| 欧美午夜一区二区三区免费大片| 亚洲色图视频网| 欧美日韩一区视频| 亚洲444eee在线观看| 欧美一二三四区在线| 国产精品影视在线| 国产精品久久久久久亚洲伦| 成人h精品动漫一区二区三区| 亚洲欧美欧美一区二区三区| 欧美日韩视频在线一区二区| 日韩国产欧美在线播放| 欧美精品一区二区三区蜜臀| 成av人片一区二区| 亚洲精品日韩一| 91麻豆精品国产91久久久使用方法| 日韩精品视频网| 欧美国产1区2区| 99国产精品久久| 日本vs亚洲vs韩国一区三区| 久久免费的精品国产v∧| 成人午夜免费电影| 亚洲综合男人的天堂| 欧美美女一区二区在线观看| 国产一区二区精品久久99| 国产精品国产三级国产| 9191国产精品| 国产福利一区二区| 亚洲国产成人精品视频| 欧美日韩另类一区| 久久久久久夜精品精品免费| 亚洲福利国产精品| 日韩情涩欧美日韩视频| 91在线视频网址| 日韩精品三区四区| 国产欧美一区二区精品久导航 | 一区二区三区欧美激情| 宅男在线国产精品| 成人免费观看av| 视频一区二区三区在线| 国产精品美女一区二区三区| 日本一区二区三区四区| 色94色欧美sute亚洲13| 国产经典欧美精品| 日韩av一区二区三区| 亚洲一区二区视频在线观看| 久久欧美一区二区| 欧美日韩免费高清一区色橹橹| 懂色av一区二区夜夜嗨| 看电影不卡的网站| 亚洲一区电影777| 亚洲男人的天堂一区二区| 国产视频在线观看一区二区三区| 6080yy午夜一二三区久久| 色先锋久久av资源部| 国产精品亚洲第一区在线暖暖韩国| 亚洲国产婷婷综合在线精品| 国产精品久久久久久久久快鸭 | 成人自拍视频在线观看| 精品亚洲成a人在线观看| 视频在线观看一区二区三区| 亚洲国产精品久久人人爱蜜臀| 日韩一区在线免费观看| 国产欧美日韩激情| 久久伊99综合婷婷久久伊| 亚洲国产精品欧美一二99|