六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用VC完成在線訂貨

[摘要]目前電子商務采用的處理模式大多是訂貨用戶在網頁上填寫訂單,發出訂貨請求,接著WEB服務器上運行CGI程序對用戶填寫的數據進行一定的處理后,發送到專用的電子商務服務器中,服務器則對發來的用戶數據進行一系列校驗,驗證用戶身份及證實所需的訂貨信息完整后,將訂單寫入數據庫中,并向WEB服務器中的CGI程序...
   目前電子商務采用的處理模式大多是訂貨用戶在網頁上填寫訂單,發出訂貨請求,接著WEB服務器上運行CGI程序對用戶填寫的數據進行一定的處理后,發送到專用的電子商務服務器中,服務器則對發來的用戶數據進行一系列校驗,驗證用戶身份及證實所需的訂貨信息完整后,將訂單寫入數據庫中,并向WEB服務器中的CGI程序發回一個交易成功的信息,證實交易完成。  

  我們利用VC++的AppWizard創建一個支持MFC類的控制臺模式程序(An application that support MFC),命名為“Eshopping”,修改主程序文件EShopping.cpp如下:  

  #include "stdafx.h"  

  #include "EShopping.h"  

  #include "afxsock.h"  

  typedef struct OrderSet //用戶自己定義的一個訂貨單結構  

  {  

   char UserName[24];  

   char Password[12];  

   char Goods[24];  

   int Count;  

   char Addr[256];  

  }ORDER;  

  ……//省略部分機器生成代碼  

  int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])  

  { if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))  

   {……//省略部分機器生成代碼  

   }else //程序處理的主體  

  {cout〈〈"Content-type:Text/HTML\n\n";  

  //輸出回顯給用戶的HTML的頭  

   cout〈〈"〈HTML〉〈HEAD〉〈TITLE〉〈/TITLE〉〈/HEAD〉〈BODY〉\n";  

   char *StreamSize=getenv("CONTENT_LENGTH"); //開始取得用戶填寫的信息  

   long dataSize=atol(StreamSize);  

   char* buffer[dataSize]=new char[dataSize];  

   ::memset(buffer,0,dataSize);  

   cin〉〉buffer; //取得用戶填寫的信息  

   char Ware[5][256]; //這個數組用于從獲取的字串中分離用戶填寫的數據  

   ::memset(Ware,0,5256);  

   char* p=buffer;  

   int Row=0,Col=0;  

   while(Row〈5)//開始處理獲取的字串  

   {if(*p= ='='){//若在字串中遇到“=”號,意味著用戶填寫的一個項的開始  

  Col=0;  

  p++;  

  while(*p!='&&') { //若在字串中遇到“&&”號,意味著用戶填寫的一個項的結束  

  if(*p= ='+') *p=' '; //字串中的“+”號要轉成空格  

  Ware[Row][Col++]=*p;  

  p++; }  

   Row++; }  

   p++;  

   }  

   ORDER Order;//處理完字串后,把用戶填寫的數據填寫到一個ORDER結構中  

   memcpy(Order.UserName,Ware[0],24);  

   memcpy(Order.Password,Ware[1],12);  

   memcpy(Order.Goods,Ware[2],24);  

   int Counts=atoi(Ware[3]);  

   Order.Count=Counts;  

   memcpy(Order.Addr,Ware[4],256);  

   WORD wVersionRequested; //開始連接到服務器上  

   WSADATA wsaData;  

   hostent FAR *hp;  

   wVersionRequested = MAKEWORD( 2, 0 );  

   WSAStartup( wVersionRequested, &&wsaData );  

   SOCKET sockClient= INVALID_SOCKET;  

   sockaddr_in addr; //填寫一個sockaddr_in結構  

   hp = gethostbyname("Alex"); //假設服務器名為“Alex”  

   memcpy(&&(addr.sin_addr),hp-〉h_addr,hp-〉h_length);  

   addr.sin_family = AF_INET;  

   addr.sin_port =htons(1025); //假設服務器偵聽端口為1025  

  sockClient= socket(AF_INET, SOCK_STREAM, 0);  

   connect(sockClient, (sockaddr *)&&addr, sizeof(addr));  

  //連接到服務器  

   send(sockClient,(char*)&&Order,sizeof(ORDER),0);  

  //發送用戶填寫的信息  

  while(TRUE)  

  //等待服務器發來確認信息,完成交易  

   {if(int length=recv(sockClient,buffer,dataSize)〉0)  

   {……//省略校驗回送信息的代碼  

  cout〈〈"cout〈〈"We have got your order!";  

   break;  

   }  

   }  

   closesocket(sockClient); //關閉socket  

   WSACleanup( );  

   cout〈〈"〈/BODY〉〈/HTML〉";  

   return 0;  

   }  

   return nRetCode;  

  }  

  上述程序只是一個獲取英文電子訂單并向服務器發送訂單數據的CGI程序,假設服務器程序已經運行于服務器上,并在1025端口上進行偵聽,驗證后發送交易成功與否的信息。  

  以上程序在Windows 98、VC++ 6.0環境下調試通過,在OmniHTTPd 2.0 Alpha 8 服務器上運行正常。


主站蜘蛛池模板: 日韩在线欧美 | 午夜视频在线免费 | 午夜老司机在线观看免费 | 五月天婷婷精品免费视频 | 日韩精品久久久免费观看夜色 | 欧美亚洲另类一区中文字幕 | 欧美亚洲一区二区三区在线 | 四虎精品永久在线 | 青娱乐免费视频在线观看 | 亚洲mv日韩mv欧美mv | 天堂一区二区三区在线观看 | 欧美午夜精品 | 日本一区二区三区在线 观看网站 | 图片区欧美色图 | 欧美综合区自拍亚洲综合 | 偷窥综合网 | 亚洲免费天堂 | 欧美在线综合视频 | 日本高清色本免费现在观看 | 天天插天天干天天射 | 日韩亚洲欧美一区 | 青青草原亚洲 | 四虎影视国产在线观看精品 | 青娱乐极品在线 | 五月天婷婷基地 | 日韩理论视频 | 五月婷婷七月丁香 | 天天操 夜夜操 | 日本一本视频 | 亚洲免费人成 | 中文字幕人成乱在线视频 | 三级国产三级在线 | 日韩视频91| 日韩精品在线视频观看 | 性生活视频欧美 | 欧美丝袜一区二区三区 | 日本三级理论 | 欧美一区二区久久精品 | 青青草国产 | 四虎永久免费影院 | 真实国产乱子伦精品一区二区三区 |