C語言socket編程發送HTTP請求實例

前幾天在自己的私服中用c寫了一個模擬股市系統,所使用的數據是通過socket發送HTTP請求,然後獲得新浪財經的介面頁面進行處理。那麼現在我們把需求和需要做的事情總結一下:
1、如何發送HTTP請求
2、請求到某個股票網站的輸入和輸出分別是什麼
3、處理收到的字元串數據

先試著寫一個簡單的HTTP請求發送和接收程序

上面的例子使用非阻塞的recv作為接收,優點是接收後不會阻塞的運行程序進行接下來的輸出列印,而缺點是如果返回的頁面數據很多,分包之後會發現recv接收的頁面是不全的,只有大概2k多數據。所以在實際應用中我使用了read作為接收函數。

我的需求是通過上證股票代碼獲得開盤收盤和當前價格等信息,已知新浪股票的HTTP介面用法是這樣 http://hq.sinajs.cn/?list=sh600000,sh600406 放到瀏覽器一看就明白了,已經滿足通過代碼獲的所有信息,接下來寫具體的處理過程。

下面是我所寫的通過股票代碼獲得實時價格的程序:

由於涉及自己伺服器數據庫的數據結構,數據庫處理過程已經省略。getline得到的每一行可以用sscanf分隔成字元串,然後再使用atof轉化為價格數的浮點。引號內的欄位可以分別保存到zd[33][50]的二位數組中,關於新浪的股票介面,它們每個欄位表示的意義大概如下:
0股票名稱;1今開價;2昨收價;3當前價;4今最高;5今最低;……最後是30更新日期和31時間

自用程序寫的比較爛,如有缺陷歡迎指正。
=======
kujou_rin

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *