声明:这里面的代码均为网上找的然后有小小的改动,并非原创。但文章为原创

一、.编译

  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页面),高手请忽略的更多相关文章

  1. 背水一战 Windows 10 (120) - 后台任务: 后台上传任务

    [源码下载] 背水一战 Windows 10 (120) - 后台任务: 后台上传任务 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 后台上传任务 示例演示 uwp 的后台上 ...

  2. java 后台上传文件

    java 后台上传文件 public static String uploadFile(File file, String RequestURL) throws IOException { Strin ...

  3. 【已解决】phpMyAdmin中导入mysql数据库文件时出错:您可能正在上传很大的文件,请参考文档来寻找解决办法

    期间,用phpMyAdmin去导入90M左右的mysql数据库文件时出错: 您可能正在上传很大的文件,请参考文档来寻找解决方法. [解决过程] 1.很明显,是文件太大,无法导入.即上传文件大小有限制. ...

  4. shopex后台上传模板漏洞

    看到有人找这个拿SHELL的方法.就本地搭建试了下.很简单的. 首先是WIN下.需要WIN主机IIS解析漏洞. 进入后台.点页面管理.点模板列表.默认模板是紫气东来(ShopEx4.8).点编辑模板. ...

  5. jquery 如何动态绑定传递到后台上传组件参数

    $("#upload_photo").uploadify({ 'auto' : false, 'method' : "post", 'height' : 20, ...

  6. from表单实现无跳转上传文件,接收页面后台数据。

    本文基于我刚写的http://www.cnblogs.com/iwang5566/p/6287529.html进行了简单的扩展,实现页面无跳转表单数据提交,并接收后台返回的数据. 下载好,上一篇文章d ...

  7. WordPress 后台上传自定义网站Logo

    需求: 众所周知一般网站的logo都是固定的所以我在做网站时也是使用的静态logo文件,但最近用wp给一个客户做的网站时,因为网站现在的logo可能会需要重新设计,所以客户提出了需要在后台可以自己修改 ...

  8. from表单实现无跳转上传文件,接收页面后台数据

    实现无跳转发送表单数据.文件,并能接收后台返回的数据. 主要技术要点: 1.form表单添加target属性,指定一个iframme的name:form表单提交后在iframe内嵌窗口接受响应,主页面 ...

  9. Easyui前端、JAVA后台 上传附件

    前端使用easyui框架,后台使用JAVA 的JFinal框架开发 功能描述:实现附件上传功能.文件上传路径为:../upload(上传文件夹)/身份证号/慢病编码/上传的附件. 细节要求:实现多图片 ...

随机推荐

  1. [翻译]Event Handler Description 事件处理描述

    Event Handler Description 事件处理描述 (自定义控件)   How should a new event handler be defined if it does not ...

  2. .NET 匿名方法的BUG,请专家解答

    匿名方法是.NET 3.5之后的一个好东东,很多人使用,但是我在最近的工作当中发现了一个问题. 请专家解答 //list里存放10个数字 List<); ; i < ; i++) { li ...

  3. 使用google chrome抓取数据:抓取全国的高中的数据

    http://tomycat.github.io/blog/other/2014/05/28/use-google-chrome-capture-data.html

  4. Monthly数据类型

    Monthly由来 最近在做关于智能财税的项目,大量用到了账期相关的数据操作.项目已有两年历史了,对于账期数据,前辈们用的是DateTime数据类型,即每个月的最后一天就是账期.而用DateTime来 ...

  5. mac下wordpress环境搭建

    mac下本来就有apache和php,只需要配置以下+安装mysql 1.Apache 预装目录在  /etc/apache2: 默认的网站目录在 /Library/WebServer/Documen ...

  6. iOS AppStore 被拒原因

    De : Apple 3.12 - Apps should have all included URLs fully functional when you submit it for review, ...

  7. 常见的vue面试题

    001.v-show与v-if的区别v-show:操作的是元素的display属性 v-if:操作的是元素的创建和插入相比较而言v-show的性能要高 002.methods.computed.wat ...

  8. P5282 【模板】快速阶乘算法(多项式运算+拉格朗日插值+倍增)

    题面 传送门 前置芝士 优化后的\(MTT\)(四次\(FFT\)) 题解 这里有多点求值的做法然而被\(shadowice\)巨巨吊起来打了一顿,所以来学一下倍增 成功同时拿到本题最优解和最劣解-- ...

  9. Create Index using NEST .NET

    Hello Guys, I have a doubt about how create index using NEST .NET. I created every fields in my C# m ...

  10. day 10 课后作业

    # -*- coding: utf-8 -*-# @Time : 2019/1/2 16:35# @Author : Endless-cloud# @Site : # @File : 课后作业.py# ...