From 097711c46c03b685fc83a906659f0e5d240a6771 Mon Sep 17 00:00:00 2001 From: wangzhongjie Date: Wed, 5 Mar 2025 11:22:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/tcp2byte/index.ts | 48 ++++++++++++++++------------ 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/entry/src/main/ets/tcp2byte/index.ts b/entry/src/main/ets/tcp2byte/index.ts index 3fdbc7bf..5dec3f24 100644 --- a/entry/src/main/ets/tcp2byte/index.ts +++ b/entry/src/main/ets/tcp2byte/index.ts @@ -2,18 +2,19 @@ import socket from '@ohos.net.socket' import util from '@ohos.util' import promptAction from '@ohos.promptAction' import TcpToByte from './utils/tcp2byte' -import {bytesToDecimal} from './utils/tools' +import { bytesToDecimal } from './utils/tools' + const TAG = '[TCP2BYTE]' interface RES { - code: number|string, + code: number | string, message?: string } const config = { - address: '114.55.125.222', - port: 50189 + address: '172.37.55.191', + port: 40000 } export default async function tcp2ByteRequest(data): Promise { @@ -27,7 +28,11 @@ export default async function tcp2ByteRequest(data): Promise { console.info(TAG, 'sendData=>' + JSON.stringify(sendData)) try { - await tcpClient.connect({address: {address, port}}) + await tcpClient.connect({ + address: { + address, port + } + }) //发送消息 handSendMessage(tcpClient, data.sjbs, sendData) } catch (e) { @@ -42,7 +47,7 @@ export default async function tcp2ByteRequest(data): Promise { //收到消息 tcpClient.on('message', (data) => { const res = handReceiveMessage(tcpClient, sendData, data.message) - if(res){ + if (res) { tcpClient.close() resolve(res) } @@ -68,7 +73,7 @@ export default async function tcp2ByteRequest(data): Promise { function handSendMessage(client: socket.TCPSocket, type, data) { switch (type) { - //开始考试 过程照片 考试结束需要分包 + //开始考试 过程照片 考试结束需要分包 case '02-21-000009': case '02-21-000012': case '02-21-000014': @@ -83,46 +88,47 @@ function handSendMessage(client: socket.TCPSocket, type, data) { client.send({ data: new Uint8Array(data).buffer }) break; - default:break; + default: + break; } } //处理接收的数据 -function handReceiveMessage(client: socket.TCPSocket, sendData, rData:ArrayBuffer):RES { +function handReceiveMessage(client: socket.TCPSocket, sendData, rData: ArrayBuffer): RES { const receiveData = new Uint8Array(rData) //返回的消息类型 const messageType = receiveData[1]; //流水号 - const lsh = bytesToDecimal([receiveData[2],receiveData[3]]); + const lsh = bytesToDecimal([receiveData[2], receiveData[3]]); //开始补包 - if(messageType === 0xF0){ + if (messageType === 0xF0) { //获取消息体长度 const messageLength = receiveData[12] //分包总数 - const packages = bytesToDecimal(receiveData.slice(13,13 + messageLength*2)); + const packages = bytesToDecimal(receiveData.slice(13, 13 + messageLength * 2)); const forArr = new Array(packages).fill(1) - forArr.forEach((item,index)=>{ + forArr.forEach((item, index) => { const start = index * 2; const end = start + 2; - const packageIndex = bytesToDecimal([start,end]); + const packageIndex = bytesToDecimal([start, end]); console.info(TAG, '补包内容' + JSON.stringify(new Uint8Array(sendData[packageIndex]))) - client.send({data:new Uint8Array(sendData[packageIndex]).buffer}); + client.send({ data: new Uint8Array(sendData[packageIndex]).buffer }); }) - }else{ - const decoder = util.TextDecoder.create('utf-8'); - const messageLength = bytesToDecimal([receiveData[9],receiveData[10]]); + } else { + const decoder = util.TextDecoder.create('utf-8'); + const messageLength = bytesToDecimal([receiveData[9], receiveData[10]]); const markLength = receiveData[11]; - const markContent = decoder.decodeWithStream(receiveData.slice(12, 12 + markLength )); + const markContent = decoder.decodeWithStream(receiveData.slice(12, 12 + markLength)); console.info(TAG, 'markContent=>' + markContent) const tipLength = receiveData[13]; const messageContent = decoder.decodeWithStream(receiveData.slice(13 + markLength, 13 + markLength + tipLength)); console.info(TAG, 'messageContent=>' + messageContent) return { - code:markContent, - message:messageContent + code: markContent, + message: messageContent } } } \ No newline at end of file