nest.js 가 클라이언트인 상황으로 , TCP Socket을 Listening을 하고 있는 서버에 메시지 전송 예제 입니다.
1. nestjs Client class 작성 진행
import { Logger } from "@nestjs/common";
export class TcpClient {
static logger = new Logger(TcpClient.name);
static net = require('net');
static initTcpConnection() {
const client = new this.net.Socket();
let result;
client.connect(35000 , 'localhost' , (data : string) => {
client.on('data',(data : string) => {
result = data;
this.logger.log(result);
client.end();
});
});
return client;
}
static sendTcpMessage(message : string) {
const client = this.initTcpConnection();
client.write("Header Sended");
client.write(
JSON.stringify(
{
"content" : "Send Body",
"title" : "Send Title"
})
)
}
}
2. nestjs에서 spec.ts 를 이용하여 테스트 하기 위하여 작성 하였습니다.
import { TcpClient } from './tcpclient';
describe("TcpClient Test", () => {
it("Test SendMessage" , () => {
TcpClient.sendTcpMessage("message");
});
});
3. TCP Server , C#으로 간단하게 예제 작성 하였습니다.
// See https://aka.ms/new-console-template for more information
using System.Net;
using System.Net.Sockets;
using System.Text;
TcpListener listener = new TcpListener(IPAddress.Parse("127.0.0.1") , 35000);
Console.WriteLine("Start Listener");
listener.Start();
while(true)
{
using (TcpClient client = listener.AcceptTcpClient())
using (NetworkStream stream = client.GetStream())
{
Console.WriteLine($"Connected {(client.Client.RemoteEndPoint as IPEndPoint)?.Address}");
if (!stream.CanRead) continue;
byte[] buffer = new byte[client.ReceiveBufferSize];
int bytesRead = 0;
try
{
while ((bytesRead = stream.Read(buffer, 0, client.ReceiveBufferSize)) != 0)
{
string received = Encoding.Default.GetString(buffer, 0, bytesRead);
Console.WriteLine($"Received : {received}");
byte[] rst = Encoding.Default.GetBytes($"{received}");
stream.Write(rst,0,rst.Length);
}
Console.WriteLine("Client DisConnected");
} catch(Exception exception)
{
}
}
}
4. npm run test 실행 결과 입니다.
4-1. 서버
4-2. 클라이언트
'nest.js' 카테고리의 다른 글
[typeorm] countBy 사용시에 동일한 컬럼 두번 정의 불가 (0) | 2025.03.20 |
---|---|
[nestjs] java jar library 함수 호출 예제 (0) | 2025.02.26 |
SHA256 암호화 알고리즘으로 Text 암호화 예제 (2) | 2024.09.30 |