用node.js写一个TCP连接
时间: 2023-05-11 14:05:44 浏览: 78
可以使用以下代码来建立一个基本的TCP连接:
```javascript
const net = require('net');
const client = new net.Socket();
client.connect(8080, 'localhost', function() {
console.log('Connected');
client.write('Hello, server! This is a TCP client.');
});
client.on('data', function(data) {
console.log('Received: ' + data);
});
client.on('close', function() {
console.log('Connection closed');
});
```
这个代码片段使用了Node.js的内置net模块来创建一个TCP客户端。在connect()函数中,我们指定了服务器的IP地址和端口号。在连接成功后,我们向服务器发送了一条消息,并在data事件中接收服务器返回的数据。最后,在close事件中,我们打印出连接关闭的消息。
相关问题
node.js 编写一个TCP 服务端
好的,以下是一个简单的Node.js TCP服务器示例:
```javascript
const net = require('net');
const server = net.createServer((socket) => {
// 新的客户端连接时触发
console.log('客户端已连接');
socket.on('data', (data) => {
// 接收到客户端发送的数据时触发
console.log('接收到数据:%o', data.toString());
});
socket.on('close', () => {
// 客户端断开连接时触发
console.log('客户端已断开连接');
});
socket.on('error', (err) => {
// 发生错误时触发
console.error('发生错误:%o', err);
});
});
server.listen(8888, () => {
console.log('服务器已启动');
});
```
这个例子中,我们使用 `net` 模块创建了一个 TCP 服务器,并在 `createServer()` 方法中传入一个回调函数,用于处理客户端连接、数据接收、断开连接和错误处理等事件。在回调函数中,我们通过监听 `socket` 对象的 `data` 事件来接收客户端发送的数据,`close` 事件来处理客户端断开连接,`error` 事件来处理发生的错误。最后,我们通过 `listen()` 方法指定服务器监听的端口号,启动服务器。
你可以使用 telnet 工具来模拟一个客户端连接,例如:
```
telnet localhost 8888
```
连接成功后,你可以在 telnet 中输入一些文本,然后按下回车键,这些文本将会被发送到服务器端,并在控制台输出。当你关闭 telnet 连接时,服务器也会输出相应的日志。
node.js写一个终端聊天室
好的,以下是简单的node.js终端聊天室实现:
1. 创建一个文件夹,命名为`terminal-chatroom`,在该文件夹下创建一个`server.js`文件和一个`client.js`文件。
2. 在`server.js`中,使用`net`模块创建一个TCP服务器,监听指定端口并处理连接请求。代码如下:
```javascript
const net = require('net');
const server = net.createServer(socket => {
// 新客户端连接时触发该事件
console.log(`Client ${socket.remoteAddress}:${socket.remotePort} connected.`);
// 监听客户端发送的数据
socket.on('data', data => {
console.log(`Received data from client ${socket.remoteAddress}:${socket.remotePort}: ${data.toString()}`);
// 广播消息给所有客户端
server.connections.forEach(conn => {
if(conn !== socket) {
conn.write(`Client ${socket.remoteAddress}:${socket.remotePort}: ${data}`);
}
});
});
// 监听客户端断开连接事件
socket.on('end', () => {
console.log(`Client ${socket.remoteAddress}:${socket.remotePort} disconnected.`);
});
});
// 启动服务器,监听指定端口
server.listen(8888, () => {
console.log('Server started, listening on port 8888.');
});
```
3. 在`client.js`中,使用`net`模块创建一个TCP客户端连接到服务器。代码如下:
```javascript
const net = require('net');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 连接到服务器
const client = net.connect({port: 8888}, () => {
console.log('Connected to server.');
// 给服务器发送消息
rl.on('line', input => {
client.write(input);
});
});
// 监听服务器发送的数据
client.on('data', data => {
console.log(`Received data from server: ${data}`);
});
// 监听连接断开事件
client.on('end', () => {
console.log('Disconnected from server.');
});
```
4. 打开终端,进入`terminal-chatroom`文件夹,先启动`server.js`,再启动多个`client.js`,即可在不同的终端窗口中进行聊天。