参考:linux做一个客户端与WemosD1作为服务器的无线通信(局域网通信)
作者:枕上
发布时间:2021-07-19 23:33:44
网址:https://blog.csdn.net/jinchi_boke/article/details/118916896?utm_source=app&app_version=4.11.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

目录

  • client.c
  • wemosD1(arduino平台编写服务器代码)

Linux作为客户端与wemosD1作为服务器进行网络通信:

需要的是:linux下的socket网络编程,为 linux 编写客户端

arduino平台为wemosD1,作为设备接入wifi,并架设Wemos为ftp服务器

wemosD1 WIFI模块代码demo:

https://blog.csdn.net/jinchi_boke/article/details/118915142

client.c

#include<netinet/in.h>
#include <arpa/inet.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>int main(int argc,char **argv){char readbuf[8] = {'\0'};struct sockaddr_in addr;memset(&addr,0,sizeof(struct sockaddr_in));if (argc!=3){printf("The input parameter is wrong\n");exit(-1);}//1.创建套接字int s_fd=socket(AF_INET, SOCK_STREAM,0);        if (s_fd==-1){perror("socket");exit(-1);}addr.sin_family=AF_INET;addr.sin_port=htons(atoi(argv[2]));inet_aton(argv[1],&addr.sin_addr);//2.连接服务器if(connect(s_fd,(struct sockaddr *)&addr,sizeof(struct sockaddr))==-1)  //连接wemosD1{perror("connect");exit(-1);}printf("connect....\n");while(1){printf("请输入发送的指令\n");gets(readbuf);                           //用这个编译有警告//fgets(readbuf,sizeof(readbuf),stdin);  //puts(readbuf);        write(s_fd,readbuf,strlen(readbuf));     //向wemosD1发送信息}return 0;
}

wemosD1(arduino平台编写服务器代码)

#include <ESP8266WiFi.h>                     //使用wifi的头文件char* ssid = "iPhone";                      //“wifi热点名称”
char* passwd = "1234569870-1";             //”wifi热点密码”int port = 8888;  //端口号
WiFiServer server(port); // 设置服务器端口号void initWifiSta()
{WiFi.mode(WIFI_STA);                    // 设置STA模式WiFi.begin(ssid, passwd);                //连接网络while (WiFi.status() != WL_CONNECTED) {Serial.print(".");delay(500);} Serial.println(WiFi.localIP());     //通过串口打印wemos的IP地址
}void setup()
{Serial.begin(115200);initWifiSta();server.begin();     //启动服务器
}void loop()
{//Serial.println(WiFi.localIP());     //通过串口打印wemos的IP地址// delay(500);char cmd;WiFiClient client = server.available();  //服务初始化出一个客户端while (client.connected()) {  //等待客户端连接while (client.available() > 0) {  //有数据到来,类似串口的那个函数cmd = client.read();//读取数据if( cmd == '1'){Serial.println("just do it");}else{Serial.println("nothing"); }}
}}

linux做一个客户端与WemosD1作为服务器的无线通信(局域网通信)相关推荐

  1. 树莓派作为客户端与WemosD1作为服务器的无线通信(局域网通信)

    参考:树莓派作为客户端与WemosD1作为服务器的无线通信(局域网通信) 作者:图触靓 发布时间: 2020-07-26 21:50:39 网址:https://blog.csdn.net/bhbhh ...

  2. 对linux做一个简单介绍,对“Fork”做一个技术方面的简介

    使用过 GitHub 的人大多知道它上面有个"Fork"的功能,用来将某个仓库克隆到你的账户之下,从而可以对其进行修改.衍生,也可以比较方便的将你的修改推回到原来的仓库(所谓的上游 ...

  3. 让linux的SSH客户端也能记住服务器的密码

    From: http://blog.chinaunix.net/uid-17240700-id-2813900.html CU上一位网友的问题如下:         以前一直用windows,最近工作 ...

  4. linux cisco路由器,怎样让linux做cisco路由器的专用日志服务器

    对于Cisco路由器日志的服务器设置,是一个很高端的问题.在使用的过程中需要不停地寻找更好的方式,但对于linux,很多人都不是很清楚.如何把linux设置成Cisco路由器日志服务器?想实现日志的统 ...

  5. linux做svn客户端吗,Linux中的svn客户端(TortoiseSVN 的替代者)

    RabbitVCS : TortoiseSVN 的替代者 我们都知道,自从svn出道以来,很多人都预言,cvs将会被其取代.就如同他们预言maven要取代ant一样.可见,svn的流行.在window ...

  6. 一个小型网站多少台服务器,小型企业局域网需要服务器的价格在多少左右(40台机器)...

    80台工作站建议用两台能同时负载80台客户机的服务器(正常情况下两台服务器负载均衡,如一台出现故障另一台可以全部负载),一般无盘服务器DIY比较实用和省钱. 一.(单服100-120台) 服务器主板: ...

  7. 如何做一个国产数据库(七) 网络传输 java做订阅客户端

    如何做一个国产数据库一 如何做一个国产数据库二 如何做一个国产数据库三 如何做一个国产数据库四 如何做一个国产数据库五 如何做一个国产数据库六 server端协议定义 再次强调一下我们的protoco ...

  8. 如何做一个国产数据库(六) 网络传输 nodejs做测试客户端

    如何做一个国产数据库一 如何做一个国产数据库二 如何做一个国产数据库三 如何做一个国产数据库四 如何做一个国产数据库五 网络实战服务器 我们再四中说过使用tcp进行协议的链接,对我们所定义的协议如果有 ...

  9. linux 拨号网关,用LINUX做在一张软盘上的拨号网关 (转)

    用LINUX做在一张软盘上的拨号网关 (转)[@more@] 用做在一张上的拨号网关 作者:linix 摘要:本文给出了如何用LINUX做一个仅需要一张软盘的拨号网关.可以用它作为或一般MODEM的拨 ...

最新文章

  1. 一次redis连接配置修改引发的redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream.异常
  2. JavaScript学习笔记(七)——厚积薄发之小成果
  3. 泛化,过拟合,欠拟合素材(part1)--python机器学习基础教程
  4. vue项目中npm install初始化报错以及‘cross-env’ 不是内部或外部命令问题
  5. java next_permutation_[LeetCode-JAVA] Next Permutation
  6. 近两万字 TCP 硬核知识,教你吊打面试官!
  7. Word 2010、Excel 2010中插入日期与时间(转)
  8. 3389远程连接问题的一个解决办法
  9. react 拆分组件于组件
  10. 交易系统开发(六)——HFT高频交易
  11. SPSS 26下载与安装
  12. 异步十二进制加法计数器(统一使用上升沿触发的D触发器)设计
  13. Unity一键修改NGUI字体的编辑器脚本
  14. IEEE 802.3标准简介以及各分类标准汇总
  15. 利用asyncio aiohttp爬取蜂鸟网美图
  16. uefi如何安装linux系统教程,UEFI启动模式下安装Ubuntu教程
  17. 保险行业的“偿二代”
  18. 字节跳动自研线上引流回放系统的架构演进
  19. 韩顺平c语言视频笔记,韩顺平视频笔记
  20. 论文解读2019INFOCOM_Calibrate: Frequency Estimation and Heavy Hitter Identification with LDP

热门文章

  1. 封装之--通过类中公有方法访问私有成员变量
  2. Java Web应用的生命周期
  3. Spring中Bean的定义继承
  4. Unity3D研究院之Android同步方法读取streamingAssets
  5. Linux基础之文件权限详解
  6. Android 布局学习之——Layout(布局)详解一
  7. 《从零开始学Swift》学习笔记(Day 66)——Cocoa Touch设计模式及应用之通知机制...
  8. JQuery常用的代码片段
  9. 编译选项—微软官方+各地总结
  10. 最新可用NOD32免ID升级服务器