繁体   English   中英

Winsock2 c 连接到 Javascript Websocket 服务器

[英]Winsock2 c sokcet to a Javascript Websocket server

我正在尝试使用使用 Visual Studio 编译的 winsock2 将 c 文件中的数据发送到 Javascript 中的 WebSocket 服务器。 但我没有成功让他们在 windows 上进行通信。 由于我不是 c 视觉工作室和套接字专家,我不明白为什么 C 客户端不向我的 JS WebSocket 服务器发送任何数据。

这是我正在使用的以下两个“代码”。 如果您有一些提示或好主意。 随意回答。

C代码

#include <winsock2.h>

#include <hmi_api.h>
#include <stdio.h>
#include <io.h>
#include <string.h>
#include <Windows.h>

int main(int argc, char** argv) {

WSADATA wsa;
SOCKET s;
char* message;

printf("\nInitialising Winsock...");
if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
{
    printf("Failed. Error Code : %d", WSAGetLastError());
    return 1;
}

printf("Initialised.\n");

//Create a socket
if ((s = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET)
{
    printf("Could not create socket : %d", WSAGetLastError());
}

printf("Socket created.\n");


struct sockaddr_in server;

server.sin_family = AF_INET;
server.sin_port = htons(8081);
server.sin_addr.s_addr = inet_addr("127.0.0.1");

//Connect to remote server
if (connect(s, (struct sockaddr*)&server, sizeof(server)) < 0)
{
    puts("connect error");
    return 1;
}

puts("Connected");

message = "Hello";
if (send(s, message, strlen(message), 0) < 0)
{
    puts("Send failed");
    return 1;
}
puts("Data Send\n");

int while_count = 0;

while(while_count < 10){

     char* test_message = "Test";
     send(s,test_message,sizeof(test_message),0);
     while_count++;
}

}

Javascript代码

var webSocketServer = require('ws').Server;
var socket = new webSocketServer({port:8081,host:'127.0.0.1'})
const { table } = require('console');
var fs = require('fs');

console.log("Starting")
socket.on('connection',function(ws){
  console.log("client connected")
   ws.on('message', function(message){
    console.log(JSON.parse(message))
    dataset.table.push(JSON.parse(message))
  })

})

非常感谢 !

R。

我发现了问题。 这个 javascript websocket 不适用于 C 插座,因此,我尝试了以下 Z9E13B69D1D154DA9277102AC

net = require('net');

net.createServer(function (socket) {

    socket.on('data', function (data) {
        console.log(JSON.parse(data));
    });
    socket.on('error', function(e){
        console.log(e);
    });


}).listen(5000);

console.log("Chat server running at port 5000\n");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM