响应 +COPS:0
AT+csq//检测信号质量,确定是否可以登陆上网络;若返回10--31,0之间的信号数字则继续,OK 未找到网络响应 +COPS:0,0,”UNICOM” //联通OK响应 +COPS:0,0,”CHINA MOBILE” //移动OK
A->WCDMA: 出厂默认设置 B->GSM/GPRS: AT命令不支持设置此模式?CG->GPRS Only: AT+CREG?返回未注册,但能pppd拨号CC->GSM Only: AT+CREG?查看注册上,但pppd不能拨号上网AT+CGDCONT=1,"IP",”CMNET" //首先定义PDP移动场景AT+CGATT=1 //激活PDP,返回OK则继续AT+CIPCSGP=1,"CMNET" //设置模块连接方式为GPRS连接,接入点为“CMNET”AT+CDNSORIP=0 //0:通过IP访问 //1:通过域名访问AT+CDNSCFG="211.136.17.107" //初始化本地dns,本例为中国移动
TCP/UDP指明是TCP连接还是UDP连接221.216.163.44是SEVER端的IP地址 2020为端口连接成功后模块返回:OKCONNECT OK4、发送信息AT+CIPSEN发送完此命令后出现一个 ">" 符号,这样就可以在超级终端里输入要发送的信息,输入完毕后按下"ctl+z"发送,即将所要发送的数据发送到指定IP的服务器上
在一个具有公网IP的电脑上运行以下服务器程序:
- //=============================================================
- // 文件名称:tcp_echo_srv.c
- // 功能描述:TCP Echo Server
- // 维护记录:2011-8-15 V1.0
- //=============================================================
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h> // bzero
- #include <unistd.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h> // inet_ntop
- //=============================================================
- // 语法格式: void main(void)
- // 实现功能: 主函数,建立一个TCP Echo Server
- // 入口参数: 无
- // 出口参数: 无
- //=============================================================
- i<span style="color:#3333ff;">nt main(int argc, char *argv[])
- {
- char recvbuf[2048]; // 接收缓冲区
- int sockfd; // 套接字
- struct sockaddr_in servAddr; // 服务器地址结构体
- unsigned short port = 8000; // 监听端口
- if(argc > 1) // 由参数接收端口
- {
- port = atoi(argv[1]);
- }
- printf("TCP Server Started at port %d! ", port);
- //setp 1: 创建TCP套接字
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if(sockfd < 0)
- {
- perror("Invalid socket");
- exit(1);
- }
- //setp 2: 将socket套接字与端口号、本机IP地址绑定
- bzero(&servAddr, sizeof(servAddr)); // 初始化服务器地址
- servAddr.sin_family = AF_INET; // 采用IPV4协议
- servAddr.sin_port = htons(port); // 邦定端口号
- servAddr.sin_addr.s_addr = htonl(INADDR_ANY); //绑定本机IP地址
- printf("Binding server to port %d ", port);
- printf("servAddr.sin_addr.s_addr=%d ",servAddr.sin_addr.s_addr);
- if(bind(sockfd, (struct sockaddr*)&servAddr, sizeof(struct sockaddr)) != 0)
- {
- close(sockfd);
- perror("binding err!");
- exit(1);
- }
- //setp 3 将套接字设置为监听模式
- if(listen(sockfd, 1) != 0)
- {
- close(sockfd);
- perror("listen err!");
- exit(1);
- }
- printf("waiting client... ");
- while(1)
- {
- char cliIP[INET_ADDRSTRLEN]; // 用于保存客户端IP地址
- size_t recvLen;
- struct sockaddr_in cliAddr; // 用于保存客户端地址
- size_t cliAddrLen = sizeof(cliAddr);
- // 必须初始化!!!
- //setp 4:阻塞等待客户端的连接
- int connfd = accept(sockfd, (struct sockaddr*)&cliAddr, &cliAddrLen);
- // 获得一个已经建立的连接
- if(connfd < 0)
- {
- close(sockfd);
- perror("accept err!");
- exit(1);
- }
- inet_ntop(AF_INET, &cliAddr.sin_addr.s_addr, cliIP, INET_ADDRSTRLEN);
- printf("client ip = %s ", cliIP);
- //setp 5:读取客户端发送的数据并回送给客户端
- while((recvLen = read(connfd, recvbuf, 2048)) > 0)
- {
- write(connfd, recvbuf, recvLen);
- }
- close(connfd);
- printf("client closed! ");
- }
- close(sockfd);
- return 0;
- }
使用以下方式连接: AT+CIPSTART="TCP","124.*.*.139","8000"
使用以下命令发送数据: AT+CIPSEND服务器会把发送的数据回给你