C++ c+的示例+;client和node.js服务器
我有个问题。。。我试图把我的C++客户端连接到我在NoDjs中写的服务器,但是我不能这么做。如何在服务器中接收数据?使用此代码,我接收客户端连接,但不接收它发送的数据。我将欣赏一个简单的例子,从一个C++客户端和NoDEJS服务器发送和接收数据。 这是我的客户。cppC++ c+的示例+;client和node.js服务器,c++,node.js,server,client,unix-socket,C++,Node.js,Server,Client,Unix Socket,我有个问题。。。我试图把我的C++客户端连接到我在NoDjs中写的服务器,但是我不能这么做。如何在服务器中接收数据?使用此代码,我接收客户端连接,但不接收它发送的数据。我将欣赏一个简单的例子,从一个C++客户端和NoDEJS服务器发送和接收数据。 这是我的客户。cpp 客户端程序终止的速度快于服务器读取数据的时间(在系统有时间发送输出缓冲区之前,套接字关闭)。在你离开之前先做一个“睡眠”(或任何其他等待的概念),看看会发生什么 p、 s.您的“发送”的返回值是多少?您没有在send函数调用后调用
客户端程序终止的速度快于服务器读取数据的时间(在系统有时间发送输出缓冲区之前,套接字关闭)。在你离开之前先做一个“睡眠”(或任何其他等待的概念),看看会发生什么
p、 s.您的“发送”的返回值是多少?您没有在
send
函数调用后调用recv
函数来接收数据我确信socket.io
有c/c++库,因为这是WebSocket上的自定义协议,我建议您这样做。如果不是,则可能在节点中使用一些低级套接字实现:
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#define PORT 8080
int main(int argc, char const *argv[])
{
int sock = 0, valread;
struct sockaddr_in serv_addr;
char *hello = "Hello from client";
char buffer[1024] = {0};
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf("\n Socket creation error \n");
return -1;
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(PORT);
// Convert IPv4 and IPv6 addresses from text to binary form
if(inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr)<=0)
{
printf("\nInvalid address/ Address not supported \n");
return -1;
}
if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
{
printf("\nConnection Failed \n");
return -1;
}
send(sock , hello , strlen(hello) , 0 );
printf("Hello message sent\n");
//valread = read( sock , buffer, 1024);
//printf("%s\n",buffer );
return 0;
}
const server = require('http').createServer();
const io = require('socket.io')(server, {
path: '/test',
serveClient: false,
// below are engine.IO options
pingInterval: 10000,
pingTimeout: 5000,
cookie: false
});
server.on('connection', function (client) {
console.log("New connection");
});
server.on('data', function (client) {
console.log("New data");
});
server.on('close', () => {
console.log('Subscriber disconnected.');
});
server.listen(8080);