在Node.js中,`net`模块是用于创建网络服务的核心模块,它支持TCP和本地Unix域套接字。本文将详细介绍如何使用`net`模块创建基于TCP协议的服务器和客户端。 我们来看如何创建一个TCP服务器。在Node.js中,使用`net.createServer()`方法来创建一个服务器实例。以下是一个简单的示例: ```javascript var net = require('net'); var server = net.createServer(function(client_sock) { console.log("client comming", client_sock.remoteAddress, client_sock.remotePort); client_sock.on('close', function() { console.log('close socket'); }); client_sock.on('data', function(data) { console.log(data); client_sock.write('goodbye!!!'); client_sock.end(); }); client_sock.on('error', function(err) { console.log('error', err); }); }); server.on('listening', function() { console.log('start listening...'); }); server.on('error', function() { console.log('listen error'); }); server.on('close', function() { console.log('server stop listener'); }); server.listen({ port: 6080, host: '127.0.0.1', exclusive: true, }); ``` 在上述代码中,`server.createServer()`接受一个回调函数,该函数会在每次有新的客户端连接时被调用。`client_sock`参数是与客户端建立连接的`net.Socket`对象。我们为`client_sock`注册了几个事件监听器,如`'close'`、`'data'`和`'error'`,以便在客户端断开连接、接收到数据或发生错误时进行处理。 服务器启动后,使用`server.listen()`方法指定要监听的端口(6080)和主机地址(127.0.0.1)。`exclusive`选项设置为`true`表示创建非共享的套接字。 接下来,我们来看看如何创建TCP客户端。使用`net.connect()`方法创建一个客户端连接: ```javascript var net = require('net'); var client = net.connect({ port: 6080, host: '127.0.0.1', }, function() { console.log('connected to server!'); client.write('HelloWorld!!!'); }); client.on('data', function(data) { console.log(data); client.end(); }); client.on('end', function() { console.log('client disconnected'); }); client.on('error', function(err) { console.log('client error', err); }); ``` 在这个例子中,`net.connect()`同样接收一个对象,包含了要连接的服务器的端口号和主机地址。连接成功后,我们会向服务器发送数据`'HelloWorld!!!'`。客户端也设置了监听`'data'`、`'end'`和`'error'`事件,以处理从服务器接收的数据、客户端断开连接和处理错误。 总结起来,Node.js的`net`模块提供了强大的功能,允许开发者构建基于TCP的网络应用程序。通过`net.createServer()`创建服务器,监听客户端连接,处理数据交换;使用`net.connect()`创建客户端,与服务器进行通信。这些基本操作构成了网络通信的基础,是Node.js在构建网络服务时不可或缺的部分。
- 粉丝: 3
- 资源: 954
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助