从 Java 向用 TypeScript 编写的套接字服务器发送消息

问题描述 投票:0回答:1

服务器

myserver.ts
用TypeScript编写:

import { createServer } from 'net';

function main() {
   const socketServer = createServer((socket) => {

       socket.on('data', function (data) {
           console.log('Received: ' + data.toString());
       })

       socket.pipe(socket);
   });

   socketServer.listen(60001, '127.0.0.1');
}

main();

用Java编写的客户端:

 public static void main(String[] args) throws Exception {

    try (var socket = new Socket("127.0.0.1", 60001);
         var outStream = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))) {
        outStream.write("Hey there");
        outStream.flush();
    }
  }

在控制台中运行服务器:

ts-node ./myserver.ts
。然后运行java程序。服务器控制台输出:

$ ts-node ./myserver.ts
Received: Hey there
Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:218:20) {
  errno: -4077,
  code: 'ECONNRESET',
  syscall: 'read'
}

如您所见,我收到了“嘿,那里”。但为什么服务器会关闭呢?我知道客户端关闭了连接,但无论如何服务器应该继续监听,对吗?

我的目标是将多条单独的消息发送到 .ts 服务器。我希望服务器一直处于活动状态。

java typescript sockets
1个回答
0
投票

我注释掉了 .ts 脚本中的

socket.pipe(socket);
行,现在它可以工作了。

© www.soinside.com 2019 - 2024. All rights reserved.