博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用CGI作为unity3d服务器存储数据
阅读量:5244 次
发布时间:2019-06-14

本文共 3761 字,大约阅读时间需要 12 分钟。

#include   
#include
#include
/*
CGI Testing
Method: POST
please input two number:
*
=
*/char InputBuffer[4096]; int DecodeAndProcessData(char *input); /*具体译码和处理数据,该函数代码略*/ int main(int argc, char*argv[]) { int ContentLength; /*数据长度*/ int x; int i; char *p; char *pRequestMethod; /* METHOD属性值 */ setvbuf(stdin,NULL,_IONBF,0); /*关闭stdin的缓冲*/ printf("Content-type:text/html\n\n"); /*从stdout中输出,告诉Web服务器返回的信息类型*/ printf("\n"); /*插入一个空行,结束头部信息*/ //printf("

hello test

"); /* 从环境变量REQUEST_METHOD中得到METHOD属性值 */ pRequestMethod = getenv("REQUEST_METHOD"); if(pRequestMethod==NULL) { printf("

request = null

"); return 0; } if (strcmp(pRequestMethod,"POST")==0) { //printf("

OK the method is POST!\n

"); p = getenv("CONTENT_LENGTH"); //从环境变量CONTENT_LENGTH中得到数据长度 if (p!=NULL) { ContentLength = atoi(p); } else { ContentLength = 0; } if (ContentLength > sizeof(InputBuffer)-1) { ContentLength = sizeof (InputBuffer) - 1; } i = 0; while (i < ContentLength) { //从stdin中得到Form数据 x = fgetc(stdin); if (x==EOF) break; InputBuffer[i++] = x; } InputBuffer[i] = '\0'; ContentLength = i; DecodeAndProcessData(InputBuffer); //具体译码和处理数据,该函数代码略 } else if (strcmp(pRequestMethod,"GET")==0) { //printf("

OK the method is GET!\n

"); p = getenv("QUERY_STRING"); //从环境变量QUERY_STRING中得到Form数据 if (p!=NULL) { strncpy(InputBuffer,p,sizeof(InputBuffer)); DecodeAndProcessData(InputBuffer); //具体译码和处理数据,该函数代码略 } } //printf("
Submitted OK\n");//从stdout中输出返回信息 //printf("The information you supplied has been accepted.\n"); return 0; } int DecodeAndProcessData(char *input) //具体译码和处理数据 { printf("%s",input);//输出到客户端 // 补充具体操作 /*int i; int len; len = (int)strlen(input); printf("data length:"+len); for(i = 0;i < len;i++) { printf(">>:%d\n",input[i]); }*/ return 0; }

 

unity3D 获取数据

using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour {    // Use this for initialization    void Start () {        }        // Update is called once per frame    void Update () {        }    void Awake()    {        TestHttpSend();    }    IEnumerator SendPost(string _url, WWWForm _wForm)    {        WWW postData = new WWW(_url, _wForm);        yield return postData;        if (postData.error != null)        {            Debug.Log(postData.error);        }        else        {            Debug.Log("|"+postData.text+"|");        }    }    public void TestHttpSend()    {        //测试POST方法        WWWForm form = new WWWForm();        form.AddField("int", "6");        form.AddField("value", 2);        /*        byte[] b = new byte[2];        b[0] = 1;        b[1] = 2;        form.AddBinaryData("myBytes", b,"file.dat","");        */        StartCoroutine(SendPost("http://127.0.0.1:10086/cgi-bin/gt.cgi", form));    }}

 

unity3D获取的数据

|int=6&value=2|

 

转载于:https://www.cnblogs.com/jiangjieqim/p/6877832.html

你可能感兴趣的文章
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
水平垂直居中
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>