使用socket实现http的接收和发送
- 建立socket连接
- 向服务端发送字符串
- 接收服务端返回信息
- 解析JSON
1.建立socket连接
创建socket对象
socket(AF_INET, SOCK_STREAM, 0);
参数说明:
AF_INET:
使用IPV4进行通信,还有AF_INET6,使用IPV6,AF_UNIX,UNIX系统本地通信
SOCK_STREAM:
还有一些类型如下:SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW.
SOCK_STREAM:流套接口,特点:数据有序性,发送和接收顺序一致.一般用于TCP。
SOCK_DGRAM:特点,无序的,一般用于UDP。
需要的头文件:
#include <sys/types.h>
#include <sys/socket.h>
初始化IP地址、端口
struct sockaddr_in sockaddr;
sockaddr.sinaddr = in_addr;
//或
sockaddr.sin_addr.s_addr = inet_addr(host);
连接
connect(m_socket, (struct sockaddr *) &destaddr, sizeof(destaddr))
发送
send(m_socket,pRequestHeader,Length,0)
发送Http请求信息:pRequestHeader
获取content length
按信息长度接收信息
解析信息,使用cjson模块解析