当前位置: 首页 > 网络应用技术

一篇文章了解如何将node.js用于TCP网络通信

时间:2023-03-06 19:14:50 网络应用技术

  摘要:网络是通信互连的基础。Node.js提供了诸如NET,HTTP,DGRAM等的模块,用于与TCP,HTTP和UDP进行通信。本文主要记录使用node.js的TCP通信零件的实用记录。

  为了使用node.js创建TCP服务器,您必须首先调用要求(“ Net”)加载NET模块,然后调用Net模块的CreateServer方法以轻松创建TCP服务器。语法格式如下:

  TCP服务器的侦听方法可以开始监视客户端的连接。语法格式如下:

  以下代码可以创建TCP服务器并监视端口8001:

  运行此代码,您可以看到在控制台上执行收听方法的收听方法的回调函数,如图所示:

  您可以使用相应的TCP客户端或调试工具来连接已创建的TCP服务器。例如,使用Windows的telnet与以下命令连接:

  连接成功后,您可以看到控制台打印单词“新客户端连接”,表明已执行了CreateServer方法的回调函数,表明它已成功连接到创建的TCP服务器。

  server.listen()方法实际上触发了服务器下的侦听事件,因此您也可以手动收听侦听事件。代码如下:

  除了聆听事件外,TCP服务器还支持以下事件:

  以下代码通过NET.Server类创建TCP服务器,并添加上述事件:

  创建TCP服务器后,您可以通过server.address()方法查看此TCP服务器的地址并返回JSON对象。由于此方法返回TCP服务器监视的地址信息,因此应称为服务器。该方法或绑定了在事件侦听中调用回调函数中该方法的方法。此对象的属性为:

  代码显示如下:

  运行结果显示在图中:

  创建TCP服务器后,您可以通过服务器获得连接此TCP服务器的客户端数。回调函数有两个参数:

  除了获得连接数量之外,您还可以通过设置TCP服务器的MaxConnect属性来设置此TCP服务器的最大连接数,当连接数超过最大连接数时,该服务器将拒绝新的连接数量连接。设置此TCP服务器的最大连接数为3。

  运行此代码并尝试与多个客户端连接。可以发现,当客户端数量超过3时,新客户端无法连接到该服务器,如图所示:

  CreateServer方法的回调函数参数是net.socket对象(端口对象收听服务器)。该对象还具有一个地址()方法来获得TCP服务器的地址绑定。地址属性的对象。您可以获取客户端通过套接字对象发送的流数据。每次收到数据时,都会触发数据事件。您可以通过监视此事件来获取客户回调函数中发送的数据。代码如下:

  测试结果如下:

  除了数据事件外,套接字对象还具有连接,结束,错误,超时之类的事件。

  调用socket.write()可以使TCP服务器发送数据。该方法只有一个必要的参数,即需要发送的数据;第二个参数是编码格式,可以选择。在同一时间,您可以为此方法设置回调函数。用户连接TCP服务器时,将数据发送到客户端,代码如下:

  测试结果如下:

  在上面的代码中,还使用了套接字对象的字节写入和字节读物属性。这两个属性表示发送数据的字节数和接收数据的字节数。在上述两个属性中,套接字对象也具有以下属性:

  Node.js在创建TCP客户端时还使用NET(网络)模块。

  为了使用node.js创建TCP客户端,必须调用请求者(“ Net”)加载Net模块。创建TCP客户端仅需要创建连接到TCP客户端的套接字对象:

  创建套接字对象时,您可以传递JSON对象。此对象具有以下属性:

  创建套接字对象后,调用套接字对象的Connect()方法连接TCP服务器。代码如下:

  该连接成功如下图所示:

  套接字对象包括数据,错误,关闭,结束和其他事件,因为可以通过收听数据事件获得数据。代码如下:

  首先启动TCP服务器,然后运行上面的客户端。您可以发现服务器中的数据已在命令行中输出,表明目前已经实现了服务器与客户端之间的通信:

  由于TCP客户端是套接字对象,因此您可以使用以下代码将数据发送到TCP服务器:

  客户端控制台输出:

  服务侧控制台输出:

  到目前为止,Node.js用于TCP网络通信。欢迎纠正是否有问题。