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

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

用VC++與Winsock完成與HTTP服務(wù)器通話

[摘要]作者:Ji Hong 一、引 言 ---- Windows Socket API是一套開放的、支持多種協(xié)議的Windows下的網(wǎng)絡(luò)編程接口,它包 括一個(gè)標(biāo)準(zhǔn)的 Berkeley Socket功能調(diào)用的集合,以及為Windows所作的重要擴(kuò)充。 Windows Socket經(jīng)過不斷完善并在...
作者:Ji Hong  
  
一、引 言  
---- Windows Socket API是一套開放的、支持多種協(xié)議的Windows下的網(wǎng)絡(luò)編程接口,它包 括一個(gè)標(biāo)準(zhǔn)的 Berkeley  
Socket功能調(diào)用的集合,以及為Windows所作的重要擴(kuò)充。 Windows Socket經(jīng)過不斷完善并在眾  
多公司的全力支持下,已成為Windows網(wǎng)絡(luò)編程 的事實(shí)上的標(biāo)準(zhǔn)。  
  
---- 本 文 將 在VC++ 5.0 環(huán) 境 下 介 紹 一個(gè)基于 Winsock 的 HTTP 客戶應(yīng)用程序。 讀者可以基于本例  
同樣的原理實(shí)現(xiàn)其他Internet常用協(xié)議(time, SMTP, POP3, Telnet, FTP 等)的客戶應(yīng)用程序。  
  
二、一個(gè)簡單的瀏覽器  
---- 我將創(chuàng)建一個(gè)簡單的瀏覽器,以說明如何通過Winsock基于HTTP協(xié)議實(shí)現(xiàn)HTTP 客戶應(yīng) 用程序。  
  
---- 首先我將創(chuàng)建一個(gè)幫助函數(shù) LogFile(),該函數(shù)把傳遞給它的字符串寫到磁盤文件 中。然后再創(chuàng)建 本示例的核心函數(shù) --  
HttpClient() 。在這個(gè)核心函數(shù)中,我將通 過 Winsock 連接到 HTTP 服務(wù)器上 (本例中我將使用計(jì)算機(jī)世界日報(bào)  
168.160.224.185)。當(dāng)連接成功后,發(fā)送 Get 命令到 HTTP 服務(wù)器 去下載指定路徑  
上(/99/tips/)的文件。通過幫助函數(shù) LogFile() 把下載的數(shù)據(jù)記錄到本地磁盤文 件中。  
  
char fname[MAXPATH];  
void LogFile(char *p)  
{  
FILE *fp=fopen(fname,"a+");  
fprintf(fp,"%s\n",p);  
fclose(fp);  
}  
  
BOOL HttpClient(void)  
{  
WSADATA ws;  
SOCKET s;  
struct sockaddr_in addr;  
  
int iResult;  
long lResult;  
char strSubAddr[100], strBuffer[100];  
  
lResult = WSAStartup(0x0101,&ws);  
s = socket(AF_INET,SOCK_STREAM,0);  
  
addr.sin_family = AF_INET;  
addr.sin_port = htons(80);  
addr.sin_addr.s_addr = inet_addr  
("168.160.224.185"); // 計(jì)算機(jī)世界日報(bào)  
iResult=connect(s,(struct sockaddr *)  
&addr, sizeof(addr));  
if(SOCKET_ERROR == iResult)  
{  
// 連接失敗  
WSACleanup();  
return FALSE;  
}  
else {  
// 連接成功  
strcpy(strSubAddr, "GET /99/tips/ \r\n");  
strcpy(fname, "index.htm");  
iResult = send(s, strSubAddr,strlen(strSubAddr),0);  
  
// 下載文件  
do {  
strset(strBuffer,' ');  
iResult = recv(s,strBuffer,sizeof(strBuffer),0);  
LogFile(strBuffer);  
} while( iResult !=0 );  
}  
  
WSACleanup();  
return TRUE;  
}  
  
三、測試  
---- 打開Visual C++ 5.0, 用MFC創(chuàng)建基于對話框的工程Test, 并在對話框上放 置"Test" 按 鈕,  
然后添加測試代碼。  
  
Void CTestDlg::OnTest()  
{  
HttpClient();  
}  
  
---- 編譯并運(yùn)行該測試程序,在測試對話框中,單擊 "Test" 按鈕,  
  
---- "http://www.computerworld.com.cn/99/tips/"的index.htm文件將被下載到本地。  
  
四. 結(jié) 論  
---- 這應(yīng)該就是Netscape Navigator,Internet Explorer以及其他瀏覽器實(shí)現(xiàn)Internet訪  
問的基本代碼了. 在這些瀏覽器中,其他百分之九十以上的代碼主要用于HTML顯示等 本地處理上。  
  
---- 讀者如果有興趣,基于這些代碼,再加入一些解釋HTML命令的代碼,就可以正確顯示 所下載的HTML文件,  
那也就是說將擁有自己版本的一個(gè)百分之百的瀏覽器了。何不一試 ?


主站蜘蛛池模板: 亚洲精品中文字幕无乱码麻豆 | 欧美在线黄色 | 青春草影院 | 天天干天天干天天操 | 啪啪大秀 | 三十极夜2免费视频 | 中文字幕第233页 | 妖精视频亚洲 | 四虎影院在线 | 青青青亚洲精品国产 | 色六月婷婷 | 偷窥自拍亚洲色图 | 午夜老司机福利 | 亚洲第一区二区快射影院 | 亚洲图区综合 | 亚洲精品第一国产综合高清 | 午夜在线精品不卡国产 | 西西人体大胆77777视频 | 亚洲乱码中文字幕久久 | 深夜久久| 色色色色网站 | 午夜性刺激在线观看视频 | 色网站在线看 | 中文字幕亚洲综久久2021 | 亚洲成人aaa | 无码精品一区二区三区免费视频 | 四虎澳门永久8848在线影院 | 四虎影院新网址 | 在线观看亚洲欧美 | 色综合久久天天影视网 | 天天综合网天天综合色不卡 | 欧美在线 | 亚洲 | 日本xxx在线 | 午夜毛片免费看 | 亚洲欧美日韩一区高清中文字幕 | 日韩精品一区二区三区中文版 | 色综合手机在线 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片免费看 | 亚洲啪视频 | 天天干夜夜怕 | 天天五月天|