0
我在节点js中编写了一个简单的服务器。在nodejs中更新变量
var tls = require("tls"), fs = require("fs"), sys = require("sys");
//Number of messages received
var received=0;
var options = {
key: fs.readFileSync("certs/keys/server.key"),//Server private key
cert:fs.readFileSync("certs/certs/server.crt"),//Server cert.
requestCert: true,//Require client to send it's certificate
rejectUnauthorized:true,
ca:fs.readFileSync("certs/certs/userA.crt") //Root certificate,
};
//Server instance with connection request callback
var server = tls.createServer(options,function(socket){
//Add a listener for receiving data packets
socket.addListener("data", function(data){
received++;
});
}).listen(2195,function(){
console.log("Server started");
});
我也有java客户端应用程序,它使服务器发送多个(300)连接并发送消息。问题是变量“received”的值与java端的“send”的值不匹配。对于。例如,如果我从Java应用程序发送100,000条消息,服务器显示接收值为80,000,即使所有消息都被服务器成功接收。
我认为问题是变量接收由多个回调在同一时间更新,因此最终值变得混乱。任何想法如何我可以解决这个问题?
尝试'socket.addListener(“connect”,...'或'socket.addListener(“end”,...' – DanS 2012-04-19 20:16:10
)您发送的消息!=您实际发送的消息(可能由于错误) – Mustafa 2012-04-19 20:36:10