diff --git a/entry/src/main/ets/tcp2byte/index.ts b/entry/src/main/ets/tcp2byte/index.ts index aefff462..f5fb2c73 100644 --- a/entry/src/main/ets/tcp2byte/index.ts +++ b/entry/src/main/ets/tcp2byte/index.ts @@ -2,19 +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: '172.37.55.191', - port: 40000 + address: '114.55.125.222', + port: 50189 } export default async function tcp2ByteRequest(data): Promise { @@ -28,11 +28,7 @@ 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) { @@ -47,7 +43,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) } @@ -78,32 +74,32 @@ function handSendMessage(client: socket.TCPSocket, type, data) { case '02-21-000012': case '02-21-000014': data.forEach((item) => { - console.log(TAG, JSON.stringify(item)) - client.send({ data: new Uint8Array(item).buffer }) + client.send({ data: new Uint8Array(item).buffer }) }) break; case '02-21-000010': case '02-21-000011': case '02-21-000013': - client.send({ data: new Uint8Array(data).buffer }) + 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) + console.info(TAG, 'receiveData=>' + JSON.stringify(receiveData)) //返回的消息类型 const messageType = receiveData[1]; + console.info(TAG, 'receiveData messageType=>' + JSON.stringify(receiveData)) + //流水号 - const lsh = bytesToDecimal([receiveData[2], receiveData[3]]); + const lsh = bytesToDecimal([receiveData[2],receiveData[3]]); //开始补包 - if (messageType === 0xF0) { + if(messageType === 0xF0){ //获取消息体长度 const messageLength = receiveData[13] //分包总数 @@ -114,21 +110,21 @@ function handReceiveMessage(client: socket.TCPSocket, sendData, rData: ArrayBuff const start = index * 2; const end = start + 1; const packageIndex = bytesToDecimal([packages[start],packages[end]]); - console.info(TAG, '补包内容' + JSON.stringify(new Uint8Array(sendData[packageIndex-1]))) - client.send({data:new Uint8Array(sendData[packageIndex-1]).buffer}); + console.info(TAG, '补包内容' + JSON.stringify(new Uint8Array(sendData[packageIndex -1]))) + client.send({data:new Uint8Array(sendData[packageIndex -1]).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)); - console.info(TAG, 'markContent=>' + markContent) + const markContent = decoder.decodeWithStream(receiveData.slice(12, 12 + markLength )); + console.info(TAG + messageType, 'markContent=>' + markContent) const tipLength = receiveData[13]; const messageContent = decoder.decodeWithStream(receiveData.slice(13 + markLength, 13 + markLength + tipLength)); - console.info(TAG, 'messageContent=>' + messageContent) + console.info(TAG + messageType, 'messageContent=>' + messageContent) return { - code: markContent, - message: messageContent + code:markContent, + message:messageContent } } } \ No newline at end of file