开启一个socket服务器,接收数据,解码并利用promise返回数据模块

1、搭建socket服务器

注意:这些代码都是要运行在node.js环境下

import { readTestBuffer } from './ReadBuf';

const port = 3000
//把启动一个netServer(socket)服务封装至tcpServer函数
const tcpServer = (port) => {
    const net = require('net');
    const server = net.createServer();
    server.listen(port, () => {
        console.log(server.address());
        
    })
	//利用promise返回结果,学会了promise,很方便,这个方法应该还可以被优化吧
    return new Promise((resolve, reject) => {
        server.on('connection', (c) => {
            c.on('data', (data) => {
            //这个是解析buffer函数,具体根据接口文档来,如何解析,可以看我前几天的文章
                const testData = readTestBuffer(data);
                resolve(testData);
            });
            
            c.on('error', (err) => {
                c.destroy()
            });
        })
    })
}

export { tcpServer }

2、请求连接socket服务器,并发送数据

const net = require('net');
const socket = new net.Socket();

socket.connect(3000, 'localhost', () => {

    const b = Buffer.allocUnsafe(2);
    b.writeUInt16BE(299, 0);
    console.log("🚀 ~ file: netSocket.js ~ line 11 ~ socket.connect ~ b", b)
    socket.write(b);
    
})
### 回答1: 在计算机网络中,Socket是一种在应用程序中进行网络通信的一种方法。它可以用于发送和接收服务器返回数据。 首先,我们需要在客户端代码中创建一个Socket对象,该对象用于与服务器建立连接。我们可以指定服务器的IP地址和端口号来建立连接。然后,我们使用Socket对象的send()方法发送数据服务器。 发送数据后,我们需要等待服务器进行处理并返回响应。为了接收服务器返回数据,我们可以使用Socket对象的recv()方法。这个方法将会阻塞程序的执行,直到接收到数据为止。 接收到服务器返回数据后,我们可以对数据进行处理。可以通过解析服务器返回数据以获取所需的信息。处理完返回数据后,我们可以根据需要再次使用Socket对象的send()方法发送新的数据服务器,或者关闭Socket。 在使用Socket进行数据的发送和接收时,需要注意以下几点: 1. 确保客户端与服务器之间的网络连接是可靠的。如果连接断开,可以尝试重新建立连接。 2. 建立连接时,要确保服务器的IP地址和端口号是正确的,否则将无法成功建立连接。 3. 在发送数据时,要根据服务器的要求进行数据格式的设置,确保数据可以被服务器正确解析。 4. 在接收服务器返回数据时,要根据服务器返回数据的格式进行解析,并注意处理可能出现的异常情况。 总之,使用Socket发送并接收服务器返回数据是一种常见的网络通信方式,它可以实现客户端与服务器之间的数据交互。掌握Socket的使用方法,可以帮助我们更好地理解和开发网络应用程序。 ### 回答2: Socket是一种用于在网络间进行通信的工具。在客户端发送请求并接收服务器返回数据时,可以通过以下步骤完成: 1. 创建Socket对象:首先需要在客户端创建一个Socket对象,用于与服务器进行通信。可以指定服务器的IP地址和端口号来建立连接。 2. 连接服务器:通过调用Socket对象的connect()方法来连接到服务器。如果连接成功,客户端可以发送请求给服务器。 3. 发送数据:使用Socket对象的输出流来发送数据服务器。可以使用write()方法将数据写入输出流。 4. 接收数据:使用Socket对象的输入流来接收服务器返回数据。可以使用read()方法从输入流中读取数据。 5. 处理数据:客户端可以根据需求对接收到的数据进行处理。可以将数据转换成字符串或者其他格式,以便进一步操作或显示。 6. 关闭连接:当所有数据处理完毕后,可以调用Socket对象的close()方法关闭连接。这会释放资源并且断开与服务器的连接。 以上就是通过Socket发送并接收服务器返回数据的基本过程。在实际应用中,还需要处理异常、设计协议等其他方面的问题来确保通信的稳定和安全。 ### 回答3: 使用socket发送数据并接收服务器返回数据,需要经过以下几个步骤: 1. 创建一个socket对象,可以使用Python的socket模块socket()函数来创建。例如: ``` import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ``` 2. 连接到服务器。使用socket对象的connect()方法来连接服务器。参数是一个元组,包含服务器的IP地址和端口号。例如: ``` s.connect(('服务器IP地址', 端口号)) ``` 3. 发送数据服务器。通过socket对象的send()方法来发送数据。参数是一个字符串,需要先将字符串转换成字节类型。例如: ``` data = '发送的数据' s.send(data.encode()) ``` 4. 接收服务器返回数据。使用socket对象的recv()方法来接收数据。可以设置接收的数据大小。例如: ``` recv_data = s.recv(1024) ``` 其中,1024表示最多接收的字节数。 5. 关闭socket连接。使用socket对象的close()方法来关闭连接。例如: ``` s.close() ``` 通过以上步骤,可以使用socket实现发送数据并接收服务器返回数据。根据实际需求,可以在发送和接收数据的过程中进行逻辑处理和错误处理,以实现更完善的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

h沐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值