使用Node.Js服务器

时间:2017-09-08 04:45:27

标签: arrays node.js sockets

我正在尝试使用下面的代码将一组对象发送到我的C ++客户端。我最初只是单独使用http库来尝试这样做,我进一步调查并发现这是不正确的方法。

我不清楚这是怎么socket.write(“你好C ++客户端”)将允许我发送这个字符串并让它出现在我的终端C ++中但使用socket.emit(“arrayTransfer”,arrayOfObjects) ;或者我在下面尝试的类似变化将不允许我接收任何东西,我尝试过发送对象数组的不同变体,但没有成功,有人可以帮助我理解这段代码中可能会发生什么,以及如何Nodejs处理这些类型的套接字? 谢谢。

这是我之前提出的问题,也许是为了更好地理解。 NodeJs server and C++ client

var server = require("net").createServer();
var io = require("socket.io")(server);


    socket.emit("message", myArray[0].name);
};

io.on("connection", handleClient);

server.listen(8080);

以下C ++客户端代码

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

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define LENGTH (512)

#include <errno.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#define PORT_NUMBER (8080) // port number where to port in application

int clientSocket;
char buffer[LENGTH];
struct sockaddr_in serverAddr;
socklen_t addr_size;




int main()
{

    /*---- Create the socket. The three arguments are: ----*/
    /* 1) Internet domain 2) Stream socket 3) Default protocol (TCP in this case) */
    clientSocket = socket(PF_INET, SOCK_STREAM, 0);

    /*---- Configure settings of the server address struct ----*/
    /* Address family = Internet */
    serverAddr.sin_family = AF_INET;

    /* Set port number, using htons function to use proper byte order */
    serverAddr.sin_port = htons(PORT_NUMBER);

    /* Set IP address to localhost */
    serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

    /* Set all bits of the padding field to 0 */
    memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);

    /*---- Connect the socket to the server using the address struct ----*/
    addr_size = sizeof serverAddr;
    connect(clientSocket, (struct sockaddr *) &serverAddr, addr_size);

    /*---- Read the message from the server into the buffer ----*/



    recv(clientSocket, buffer, 1024, 0);
    printf("This is your message %s", buffer);





    close(clientSocket);
    return 0;
}

0 个答案:

没有答案