我在C中创建了一个TCP客户端,我希望在nodejs中设置服务器端以简化并轻松集成到现有应用程序中......
在我的C代码中,我接收并以下一种方式发送消息:
numBytes = send( sock, &timeStamp, sizeof( timeStamp ), 0 );
if( numBytes < 0 )
DieWithSystemMessage( "send( ) failed" );
在阅读了一些关于&#34; net&#34;和&#34; socket.io&#34; nodejs的软件包我还没有找到让它工作的方法...我很抱歉,如果这很简单,但这是我第一次使用nodejs。 如果您有一些类似的博客或github链接,我将很高兴看一看,谢谢!
答案 0 :(得分:1)
您需要使用net模块,因此简单的TCP侦听器看起来像:
const
port = 1234,
net = require('net');
server = net.createServer(function(connection) {
connection.write("Welcome to my server"); });
server.listen(port, function() {
console.log("Listening..."); });
有关详细信息,请参阅Node.js net API
基本上,节点由于其异步性质而使用回调,所以如果你想为一条消息注册回调&#39;套接字上的事件,如:
server.on('data', function(data) {
console.log('Received data');
/* Do manipulations on the inbound data */
});
因此,您可以定义一个对数据&#39;执行的回调。 event,所以每当你在socket上接收数据时,on()调用中定义的anonymus函数都会被执行。
答案 1 :(得分:1)
Node.JS非常适用于这样的应用程序(我在一个月前启动了完全相同的项目,并且我没有任何遗憾,我选择了Node.JS)。这是Node.JS服务器的示例代码:
const port = 46500;
var net = require('net');
var server = net.createServer(function(connection) {
console.log('client connected');
connection.on('close', function (){
console.log('client disconnected');
});
connection.on('data', function (data) {
data = data.toString();
console.log('client sended the folowing string:'+data);
connection.write("Response");
console.log('Sended responst to client');
connection.end();
console.log('Disconnected the client.');
});
});
server.listen(port, function () {
console.log('server is listening');
});
我在另一篇文章中看到了你的评论,我无法回复(由于声誉不到50)但你可以在你的c代码中硬编码Node.JS服务器的ip地址(但是make确保您有服务器的IP更改时的备份选项),或者如果服务器具有域名,您可以在c应用程序内部实现DNS客户端。
答案 2 :(得分:0)
您可以使用argv传递ip,也可以使用像Hxd这样的十六进制编辑器进行修改。