前言
创建一个socket并连接到指定的Http服务器获取数据
准备工作
- 在终端输入创建wifi任务命令:
stack_wifi
- 输入连接wifi的命令
wifi_sta_connect <name> <key>
示例如下
wifi_sta_connect LeapFive_SD leapfive
若终端打印ip等信息表示wifi连接成功.
- ping测试主机连接情况,示例如下:
ping -c 172.17.254.20
关键API
1.定义socket
结构
int socket(int domain, int type, int protocol);
功能
创建套接字
参数
domain
表示套接字要使用的协议簇,协议簇的在“linux/socket.h”里有详细定义,常用的协议簇:
AF_UNIX(本机通信)
AF_INET(TCP/IP – IPv4)
AF_INET6(TCP/IP – IPv6)
type
参数指的是套接字类型,常用的类型有:
SOCK_STREAM(TCP流)
SOCK_DGRAM(UDP数据报)
SOCK_RAW(原始套接字)
protocol
一般设置为“0”,也就是当确定套接字使用的协议簇和类型时,这个参数的值就为0.
但是有时候创建原始套接字时,并不知道要使用的协议簇和类型,也就是domain参数未知情况下,这时protocol这个参数就起作用了,它可以确定协议的种类。
返回
socket是一个函数,那么它也有返回值,当套接字创建成功时,返回套接字,失败返回“-1”,错误代码则写入“errno”中。
2.连接
结构
int lwip_connect(int sockfd, const struct