地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【TypeScript】TCPサーバーでEchoを返す

最近はTypeScriptを書いています。JavaScriptも対して書いたことないので独特な書き味に色々戸惑っています。特にコールバック、無名関数、Promiseあたりは読めるようにはなったがまだ空では書けないですし複雑になると読めないですwコールバック地獄とか言葉は知ってるけどなんでああなるの?がわかっていなかったのですがわかってよかったです。本業でも少し使っているし今後は手伝ってる会社の方で書くことが増えそうなのでやっていきます。

import * as net from 'net';

const HOST = '127.0.0.1';
const PORT = 3000;

const server = net.createServer((socket) => {
  console.log('クライアントが接続しました:', socket.remoteAddress, socket.remotePort);

  socket.on('data', (data) => {
    console.log('受信したデータ:', data.toString());
    socket.write(`Echo: ${data}`);
  });

  socket.on('end', () => {
    console.log('クライアントが切断しました');
  });

  socket.on('error', (err) => {
    console.error('ソケットエラー:', err.message);
  });
});


server.listen(PORT, HOST, () => {
  console.log(`サーバーが起動しました: ${HOST}:${PORT}`);
});

server.on('error', (err) => {
  console.error('サーバーエラー:', err.message);
});

特に慣れないのがこの辺。イベント駆動モデルでアプリケーションを書き慣れていないので慣れてないだけかもですが...

server.on('error', (err) => {
  console.error('サーバーエラー:', err.message);
});