goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略
声明:这里面的代码均为网上找的然后有小小的改动,并非原创。但文章为原创
一、.编译
1.1,、下载:进入http://embedthis.com/goahead/下载goahead3.6.3(2017年9月12日还是这版本)
1.2、解压
,
然后进入goahead-3.6.3-rc目录,进入后为这样
,
然后在进入goahead-3.6.3

然后在终端中进入goahead-3.6.3,然后输入make进行编译(该方式默认是生成x86架构的程序),如图:
二、简单使用
2.1、首先在生成的可执行文件的同级目录创建一个auth.txt(可以为空)和route.txt(内容为下图中行开始没有‘#’符号的行,#开始表示注释)文件 ,如果不创建的话在运行goahead时需要加参数指定文件,否则goahead无法运行

2.2.在编译生成的二进制文件的同一级目录中创建一个目录(名字随意,这里用web)用来存放html和js文件

2.3、在web目录中创建一个文件,名为aspTest.html或aspTest.asp(这里为aspTest.asp),内容为
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<h4>串口状态</h4>
<table id="viewTab" class="viewTab" cellspacing="0" cellpadding="0">
<tr>
<th width="">串口</th>
<th width="">线路协议</th>
<th width="">波特率(bps)</th>
<th width="">数据位</th>
<th width="">起始位</th>
<th width="">停止位</th>
<th width="">奇偶校验</th>
<th width="">流控</th>
</tr>
<% MakePortAttributeList("1", "Test", "Lanj"); %>
</table>
</html>
2.4. 在goahead.c文件中的main函数中websServiceEvents(&finished);之前添加websDefineJst("MakePortAttributeList", getPortAttrib);,然后在goahead.c文件的开头声明static void getPortA(Webs *wp, STPortAttributeList *PortAttributeList);和static int getPortAttrib(int eid, Webs *wp, int argc, char **argv); // 原型。然后实现这两个函数
typedef struct PortAttributeList{
char *port;
char *agreement;
char *bandrate;
char *figure;
char *outset;
char *termination;
char *parityCheck;
char *flowControl;
}STPortAttributeList;
static void getPortA(Webs *wp, STPortAttributeList *PortAttributeList)
{
PortAttributeList[0].port="1";
PortAttributeList[0].agreement="RS232";
PortAttributeList[0].bandrate="1200";
PortAttributeList[0].figure="8";
PortAttributeList[0].outset="1";
PortAttributeList[0].termination="1";
PortAttributeList[0].parityCheck="ODD";
PortAttributeList[0].flowControl="Hardware";
PortAttributeList[1].port="2";
PortAttributeList[1].agreement="RS485";
PortAttributeList[1].bandrate="9600";
PortAttributeList[1].figure="8";
PortAttributeList[1].outset="1";
PortAttributeList[1].termination="1";
PortAttributeList[1].parityCheck="EVEN";
PortAttributeList[1].flowControl="NO";
}
static int getPortAttrib(int eid, Webs *wp, int argc, char **argv)
{
int i=0;
int SerialNum = 2;
STPortAttributeList PortAttributeList[SerialNum];
printf("Parameter = %d\n",argc);
while(i < argc)
{
printf("Parameter %d = %s\n",i,*(argv+i));
i++;
}
i = 0;
getPortA(wp,PortAttributeList);
while(i<SerialNum)
{
websWrite(wp,"<tr>");
websWrite(wp,"<td>%s</td>",PortAttributeList[i].port);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].agreement);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].bandrate);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].figure);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].outset);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].termination);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].parityCheck);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].flowControl);
websWrite(wp,"</tr>");
i++;
}
return 0;
}
2.5.重新编译goahead,然后在终端中进入goahead可运行文件的目录,然后执行sudo ./goahead -v ./web,最后在浏览器中访问127.0.0.1/aspTest.html

goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略的更多相关文章
- 背水一战 Windows 10 (120) - 后台任务: 后台上传任务
[源码下载] 背水一战 Windows 10 (120) - 后台任务: 后台上传任务 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 后台上传任务 示例演示 uwp 的后台上 ...
- java 后台上传文件
java 后台上传文件 public static String uploadFile(File file, String RequestURL) throws IOException { Strin ...
- 【已解决】phpMyAdmin中导入mysql数据库文件时出错:您可能正在上传很大的文件,请参考文档来寻找解决办法
期间,用phpMyAdmin去导入90M左右的mysql数据库文件时出错: 您可能正在上传很大的文件,请参考文档来寻找解决方法. [解决过程] 1.很明显,是文件太大,无法导入.即上传文件大小有限制. ...
- shopex后台上传模板漏洞
看到有人找这个拿SHELL的方法.就本地搭建试了下.很简单的. 首先是WIN下.需要WIN主机IIS解析漏洞. 进入后台.点页面管理.点模板列表.默认模板是紫气东来(ShopEx4.8).点编辑模板. ...
- jquery 如何动态绑定传递到后台上传组件参数
$("#upload_photo").uploadify({ 'auto' : false, 'method' : "post", 'height' : 20, ...
- from表单实现无跳转上传文件,接收页面后台数据。
本文基于我刚写的http://www.cnblogs.com/iwang5566/p/6287529.html进行了简单的扩展,实现页面无跳转表单数据提交,并接收后台返回的数据. 下载好,上一篇文章d ...
- WordPress 后台上传自定义网站Logo
需求: 众所周知一般网站的logo都是固定的所以我在做网站时也是使用的静态logo文件,但最近用wp给一个客户做的网站时,因为网站现在的logo可能会需要重新设计,所以客户提出了需要在后台可以自己修改 ...
- from表单实现无跳转上传文件,接收页面后台数据
实现无跳转发送表单数据.文件,并能接收后台返回的数据. 主要技术要点: 1.form表单添加target属性,指定一个iframme的name:form表单提交后在iframe内嵌窗口接受响应,主页面 ...
- Easyui前端、JAVA后台 上传附件
前端使用easyui框架,后台使用JAVA 的JFinal框架开发 功能描述:实现附件上传功能.文件上传路径为:../upload(上传文件夹)/身份证号/慢病编码/上传的附件. 细节要求:实现多图片 ...
随机推荐
- linux下强行umount卸载设备
卸载NFS,结果出现无法卸载的情况 umount /mnt/umount: /mnt: device is busy使用umount -f,问题依旧umount -f /mnt/umount2: De ...
- ffmpeg学习(三)——ffmpeg+SDL2 实现简单播放器
本篇实现基于ffmpeg动态库用测试程序播放本地文件和RTSP视频流. 参考文章:http://blog.csdn.net/leixiaohua1020/article/details/8652605 ...
- mysql5.7 column cannot be null
背景 独立测试环境安装了数据库,但安装的版本是mysql 5.7的版本,而研发用的是mysql5.6的版本,在执行某个数据库操作的提示,提示column “xxxx”cannot be null 问题 ...
- mongodb 连接失败
需要加一个配置文件,mongo.config bind_ip = 127.0.0.1 dbpath = D:\MongoDB\data\db logpath = D:\MongoDB\data\mon ...
- Docker 网络模式和跨主机通信
Docker的四种网络模式 Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上.虚拟网桥的工作方式和物理交 ...
- 打开win8及以上操作系统的系统已安装程序目录
Windows 8 的“Metro 界面”里不能像XP和Win7那样,点击“开始”->“程序”,显示系统所有安装的程序,这个功能还是非常有用的,可以帮助我们快速查看系统已经安装的程序!我编写了这 ...
- AGC007C Pushing Balls
题目链接 题意:\(N\)个坑,\(N+1\)个球,相间分布,距离为以\(d_1\)为首项,\(x\)为公差的等差数列.对于每次操作,随机选择一个未入坑的球,随机选择向左或向右,掉入第一个没有球的坑, ...
- KVM性能优化学习笔记
本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6. ...
- “全栈2019”Java异常第二十章:自定义异常详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- 挂载U盘到linux中
一. 挂载U盘到linux中,也可以是虚拟机中的linux 1. 首先插上U盘 2. fdisk -l 找到自己的U盘设备,并且记住文件系统类型,主要看空间大小来判断,比如是/dev/sdc ...