使用Socket API如何與WEB伺服器通訊

來源:互聯網
上載者:User

其實這個問題只要將請求網頁HTTP內容明白就好解決.

請求HTTP頭內容如下:

GET 你的網址 HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* //要求返回的內容,如需要返回圖片或Flash等,我通常都是讓伺服器僅返回text/html,主要是加快速度.

Accept-Language: zh-cn//使用的語言

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2) //這裡主要是告訴伺服器你的IE版號,所使用的系統及使用的瀏覽器,其實如果你想隱藏這裡的內容,可以自行修改.

Host: www.paymesurf.com //伺服器位址

Proxy-Connection: Keep-Alive

上面基本上是HTTP的內容,在使用過程中大家需要注意以下幾點:

1 發送請求的內容時,一定要再多加一個+#13#10

Httpstr:=GET http://www.paymesurf.com:80/surf3.php?usrid=607 HTTP/1.1+#13#10;

httpstr:=httpstr+Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*+#13#10;

httpstr:=httpstr+Accept-Language: zh-cn+#13#10;

httpstr:=httpstr+User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2;

.NET CLR 1.1.4322)+#13#10;

httpstr:=httpstr+Host: www.paymesurf.com+#13#10;

httpstr:=httpstr+Proxy-Connection: Keep-Alive+#13#10;

上面是一個網友的請求內容,而這個無法返回網頁內容,主要問題就是沒有告訴伺服器哪裡是結束位置.需要在最後面的位置再加入一個+#13#10,這樣伺服器 就會知道這裡是結束了.

2 如何知道網頁請求完畢,主要是通過FD_CLOSE來判斷,當網頁全部返回時,伺服器會自動關閉這個請求,所以你只要知道當前請求關閉就說明網頁已經下載完畢.

3 下面是我個人的經驗了,如果你想寫與WEB通訊的軟體,最好不要直接使用Socket與伺服器通訊,先將自己的IE設定成代理的模式,先看一看IE是如何通過代理軟體(這個軟體你最好自己寫一個,可以顯示請求的內容的.)工作的.然後你再使用你的軟體與伺服器通訊這樣你就知道你通常出錯在哪裡了.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.