分享

Goahead的一些参考例子

 erran 2015-11-13

1、Form

建立一个form.asp,并保存到项目/web/目录下,内容如下:

<html>
<!-Copyright(c) Go Ahead software Inc.,2012-2012.All Rights Reserved.->
<head>
<title>Goahead Form Test </title>
<link rel="stylesheet" href="style/normal_ws.css" type="text/css">

</head>

<body>
<h1>Goahead Form Test 1</h1>
<form action=/goform/formTest method=POST>

<table>

<tr>
<td>Name:</td><td><input type=text name=name size=50 value=""></td>
</tr>
<tr>
<td>Addr:</td><td><input type=text name=addr size=50 value=""></td>
</tr>
<tr>
<td></td>
<td ALIGN="CENTER">
<input type=submit name=ok value="OK"> <input type=submit name=ok value="CANCEL"></td>
</tr>
</table>

</form>

</body>
</html>

在 goahead 中增加如下内容:

websFormDefine(T("formTest"), formtest); // 注册

static void formtest(webs_t wp, char_t *path, char_t *query) // 原型
{
char_t *name, *addr;
name = websGetVar(wp, T("name"), T(""));
addr = websGetVar(wp, T("addr"), T(""));
websHeader(wp);
websWrite(wp, T("<body><h2>Name: %s, Addr: %s</h2>\n"),name, addr);
websFooter(wp);
websDone(wp, 200);
}

运行如下:

ip/form.asp

Goahead <wbr>嵌入式 <wbr>Webserver <wbr>的一些demo

输入信息,确认后显示:
Goahead <wbr>嵌入式 <wbr>Webserver <wbr>的一些demo

2、ASP
建立一个asp.asp,并保存到项目/web/目录下,内容如下:

<div id="view">
<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>
</div>

在 goahead 中增加如下内容:

websAspDefine(T("MakePortAttributeList"), getPortAttrib); // 注册

typedef struct PortAttributeList{
char_t *port;
char_t *agreement;
char_t *bandrate;
char_t *figure;
char_t *outset;
char_t *termination;
char_t *parityCheck;
char_t *flowControl;
}STPortAttributeList;

static void getPortA(webs_t 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_t wp, int argc, char_t **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,T("<tr>"));
websWrite(wp,T("<td>%s</td>"),PortAttributeList[i].port);
websWrite(wp,T("<td>%s</td>"),PortAttributeList[i].agreement);
websWrite(wp,T("<td>%s</td>"),PortAttributeList[i].bandrate);
websWrite(wp,T("<td>%s</td>"),PortAttributeList[i].figure);
websWrite(wp,T("<td>%s</td>"),PortAttributeList[i].outset);
websWrite(wp,T("<td>%s</td>"),PortAttributeList[i].termination);
websWrite(wp,T("<td>%s</td>"),PortAttributeList[i].parityCheck);
websWrite(wp,T("<td>%s</td>"),PortAttributeList[i].flowControl);
websWrite(wp,T("</tr>"));
i++;
}
return 0;
}

运行结果如下:

Goahead <wbr>嵌入式 <wbr>Webserver <wbr>的一些demo

参考:http://www.docin.com/p-253322636.html

http://www.docin.com/p-308398551.html

3、CGI

建立一个cgi.asp,并保存到项目/web/目录下,内容如下:

<form action="/cgi-bin/cgitest">

<input name="m" SIZE="5">
<input name="n" size="5"><BR>
<input type="submit" value="OK">

</form>

新建 cgitest.c,程序如下:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
char *data;
int i;
long m=0,n=0;
printf("Content-type: text/html\n\n");
printf("<TITLE> Multi S</TITLE>");
printf("<H3>Multi S</H3>");
data = getenv("QUERY_STRING");

printf("<P>%s\n",data);
if(data == NULL)
printf("<P> ERROR! DATA NO INPUT");
else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)
printf("<P> ERROR! DATA GET ERROR");
else
printf("<P> %ld * %ld = %ld.", m, n, m*n);

return 0;
}

编译后把可执行文档 cgitest 保存到 /cgi-bin/ 目录。

运行如下:

Goahead <wbr>嵌入式 <wbr>Webserver <wbr>的一些demo
输入信息,结果如下:
Goahead <wbr>嵌入式 <wbr>Webserver <wbr>的一些demo

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多