MTK Socket http连接方式流程图

本文详细介绍了 MTK Socket 进行 HTTP 连接的流程,包括创建 socket 连接、设置属性、连接服务器、发送 HTTP 请求、接收数据及关闭连接等关键步骤。重点在于回调函数的应用,这是实现 socket 通信成功的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MTK Socket http连接方式流程图

 

 1.创建socket连接

kal_int8 soc_create(kal_uint8  domain,

                    socket_type_enum  type,

                    kal_uint8  protocol,

                    module_type mod_id,

                    kal_uint32 nwk_account_id)

 

2.设置socket属性,设置socket非阻塞模式

kal_int8 soc_setsockopt(kal_int8 s, kal_uint16 option, kal_uint8 *val, kal_uint8 val_size)

kal_uint8 val = 1;

soc_setsockopt(socket_id,SOC_NBIO,&val, sizeof(val))

val = SOC_READ | SOC_WRITE | SOC_CLOSE | SOC_CONNECT;

soc_setsockopt(socket_id,SOC_ASYNC,&val,sizeof(val))

3.   连接中国移动网关或cmnet服务器公网ip

  kal_int8 soc_connect(kal_int8 s, sockaddr_struct *addr)

4.  回调函数

SetProtocolEventHandler(PsFuncPtr funcPtr, U16 eventID)

funcPtr里实现响应socket事件

此函数贯穿sokcet连接,发送,收取过程.合理设计并应用此函数是成功完成一次socket通信的关键

5.发送http请求

kal_int32 soc_send(kal_int8 s, kal_uint8 *buf, kal_int32 len, kal_uint8 flags)

其中buf字串需要遵守http连接协议,例如访问天气的的格式如下:

unsigned char weather_URL[]={"GET http://61.135.159.21/cgi-bin/weather?0755 HTTP/1.1\r\nHost: 61.135.159.21:80\r\nUser-Agent:*/*\r\nAccept:*/*\r\nX-Online-Host: 61.135.159.21\r\nProxy-Connection: Keep-Alive\r\n\r\n"}

6.接收数据

kal_int32 soc_recv(kal_int8 s, kal_uint8 *buf, kal_int32 len, kal_uint8 flags)

buf用来保存接收到的字符串,这里需要注意buf的长度不能超过2000,否则上真机的时候一到申请内存空间时就会死机,这里我用循环来接收信息并写入文件.

7 关闭socket连接

kal_int8 soc_close(kal_int8 s)

参数传入soc_create的返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值