feat:修改
This commit is contained in:
		
							parent
							
								
									b80d575b96
								
							
						
					
					
						commit
						738e83c356
					
				| @ -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<RES> { | ||||
| @ -28,11 +28,7 @@ export default async function tcp2ByteRequest(data): Promise<RES> { | ||||
|     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<RES> { | ||||
|     //收到消息
 | ||||
|     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 | ||||
|     } | ||||
|   } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user