👉🏻 아래는 Esp32 와 nodejs소켓 통신에 대한 예제입니다.
Below is an example of Esp32 and Node.js socket communication.
👉🏻 Esp32설정은 기존과 동일합니다.
The Esp32 settings are the same as before.
👉🏻 Esp32에서 “sensor=42” 메세지를 서버로 보내고 서버는 “ACK:<Esp32에서 보낸 메세지>”형식을Esp32로 보냅니다.
Esp32 sends the “sensor=42” message to the server, and the server sends a message in the format “ACK:” to Esp32.
👉🏻 Esp32
#include <WiFi.h>
const char* ssid = "YOUR_ID";
const char* password = "YOUR_PASSWORD";
// 아이피 주소 / Ipaddress
const char* host = "192.168.0.100";
const uint16_t port = 3000;
WiFiClient client;
void connectToServer() {
Serial.print("Connecting to server...");
if (client.connect(host, port)) {
Serial.println("connected");
} else {
Serial.println("failed");
}
}
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(500); }
Serial.print("WiFi OK. IP: ");
Serial.println(WiFi.localIP());
connectToServer();
}
void loop() {
// 끊겼으면 재연결 / If disconnected, reconnect
if (!client.connected()) {
client.stop();
connectToServer();
delay(1000);
return;
}
// ESP32 → 서버로 메시지 보내기
// ESP32 → Send message to server
client.println("sensor=42");
// 서버 → ESP32 응답 읽기
// Read server → ESP32 response
while (client.available()) {
String line = client.readStringUntil('\n');
Serial.print("Server: ");
Serial.println(line);
}
delay(2000);
}

👉🏻 server.js
const net = require("net");
const server = net.createServer((socket) => {
console.log("Client connected:", socket.remoteAddress, socket.remotePort);
socket.on("data", (data) => {
const msg = data.toString().trim();
console.log("RX:", msg);
// 받은 메시지에 대한 응답 / Response to a received message
socket.write("ACK:" + msg + "\n");
});
socket.on("end", () => {
console.log("Client disconnected");
});
socket.on("error", (err) => {
console.error("Socket error:", err);
});
});
server.listen(3000, "192.168.0.10", () => {
console.log("TCP server listening on 192.168.0.100:3000");
});
