NodeJs TCP服务器

时间:2020-09-23 23:47:18

标签: node.js tcp

我用c#制作了我的客户端tcp套接字,并且c#服务器也没有问题

首先,在我向客户端发送数据之前,我发送的报头包含数据长度以及其他一些数据

现在我在nodeJs服务器TCP上尝试了相同的客户端代码,但由于nodeJs中的缓冲区大小而遇到了一些问题

首先这是我的标题

 function writeInt(stream, int){
   var bytes = new Array(5)
   bytes[0] = 2
   bytes[1] = int >> 24
   bytes[2] = int >> 16
   bytes[3] = int >> 8
   bytes[4] = int
   bytes[5] = 0
 
   
   stream.write( Buffer.from(bytes))
  }

// 1,2,3,4缓冲区的大小

如果我想向我使用的客户端发送消息

var buf = Buffer.from("HELLO THIS IS A MESSAGE FROM SERVER");
writeInt(sock, buf.length) 
sock.write(buf);

这是有效的,因为我使用字符串,但是当我尝试发送整数时,出现了issuse

喜欢

var buf = Buffer.from([1,2222,999,666]);
writeInt(sock, buf.length) 
sock.write(buf);

第一件事,当我使用buf.length时,缓冲区的长度错误了,它返回了4

我尝试了其他方法,例如在NodeJs网站中找到它

let buf = Buffer.alloc(3);  // Init buffer without writing all data to zeros
buf.writeUInt16BE(220);

let buf = Buffer.allocUnsafe(2);
buf.writeUInt16BE(1234);

所有这些返回错误的缓冲区长度 或缓冲区长度不像我通过函数writeInt

发送的那样

仅当Integer发送字符串而没有任何麻烦的情况下,这种情况才会发生

0 个答案:

没有答案
相关问题