网页不打印winsock信息

时间:2018-06-08 16:41:32

标签: php mysql c

我正在尝试将数据从pragma solidity ^0.4.0; contract Zootest { struct Zoo { uint state; Animal[][2][3] animalarray; uint price; } struct Animal { uint quantity; address Address; } mapping (uint => Zoo) zoo; function openZoo (uint index) { Zoo memory newZoo = Zoo({ state: 1, price: 0, animalarray: new Animal[][2][3](0) }); zoo[index] = newZoo; } function enterZoo (uint index, uint x, uint y, uint quantity) public { Animal memory newAnimal = Animal({ Address:msg.sender, quantity:quantity }); zoo[index].price = zoo[index].price+msg.value; zoo[index].animalarray[x][y].push(newAnimal); } 应用程序发送到PHP脚本。我已经尝试了各种标题类型而没有任何成功,我似乎无法找到足够的信息。

发送数据,但PHP脚本没有打印任何结果,所以我认为错误是标题类型。

C Winsock代码

winsock

PHP脚本

    int main()
{
    SOCKADDR_IN sock;
    SOCKET s;
    WSADATA wsa;
    int lengthofrequest = 0;
    char httprequest[180] =
        "POST /test.php?name=alex&password=secret HTTP/1.1\r\n"
        "Host: 127.0.0.1\r\n"
        "Pragma: no-cache\r\n"
        "Content-type: text/html\r\n"
        "Connection: close\r\n"
        "Content-Length: 25\r\n"
        "\r\n";

    lengthofrequest = strlen(httprequest);

    // init winsock

    if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
        return WSASYSNOTREADY;

    sock.sin_addr.s_addr = inet_addr("127.0.0.1");
    sock.sin_family = AF_INET;
    sock.sin_port = htons(80);

    // create socket

    s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (s == INVALID_SOCKET)
        return 1;

    // connect to the http panel

    int conn = connect(s, (SOCKADDR*)&sock, sizeof(sock));
    if (conn < 0)
        return 1;

    // send http header

    send(s, httprequest, lengthofrequest, 0);

    // close socket

    closesocket(s);
    WSACleanup();

    return 0;
}

我将不胜感激任何帮助或指导。感谢。

1 个答案:

答案 0 :(得分:0)

你正在混合帖子并得到
使用$ _GET访问您的数据,因为您的数据已附加到网址

试试这个:

<?php
    if(isset($_GET['name'], $_GET['password']))
    {
       echo $_GET['name'];
       echo $_GET['password'];
    }

这应该可行,但您应该考虑将您的请求类型更改为C代码中的GET,以使您的代码清晰简单

你在这里做的是含糊不清的:

 "POST /test.php?name=alex&password=secret HTTP/1.1\r\n"    

因为你使用post发送get参数,而post body实际上是空的。

此外,您应该在php脚本的末尾省略?&gt;