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

发布留言

发布留言必须填写的电子邮件地址不会公开。 必填字段标示为 *