如何解决Winsock2 c sokcet 到 Javascript Websocket 服务器
我正在尝试使用使用 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 套接字。因此,我尝试了以下 Javascript 代码,它可以正常工作!
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");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。