tcp修改

This commit is contained in:
lvyuankang 2024-07-30 10:35:41 +08:00
parent 33a719a462
commit 3bbf35a1db
2 changed files with 213 additions and 198 deletions

View File

@ -1,12 +1,13 @@
import TcpClient from './TcpClient'; import TcpClient from './TcpClient';
import { getSyncData} from '../service/initable' import { getSyncData } from '../service/initable';
import hilog from '@ohos.hilog'; import hilog from '@ohos.hilog';
export async function getTCP() { export async function getTCP() {
getSyncData('IpConfigTable').then(async (result: Array<any>) => { getSyncData('IpConfigTable').then(async (result: Array<any>) => {
console.log('result222', JSON.stringify(result)) console.log('result222', JSON.stringify(result))
if (result.length) { if (result.length) {
if(globalThis.TcpClient&&globalThis.getCloseTcp){ if (globalThis.TcpClient && globalThis.TcpClient.closeTcp) {
globalThis.TcpClient.closeTcp(async () => { globalThis.TcpClient.closeTcp(async () => {
// const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) // const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
// globalThis.TcpClient = tcpClient // globalThis.TcpClient = tcpClient
@ -68,7 +69,8 @@ export async function getTCP() {
} else { } else {
globalThis.TcpClient = {} globalThis.TcpClient = {}
globalThis.TcpClient.onMessage=()=>{} globalThis.TcpClient.onMessage = () => {
}
} }
}) })
} }

View File

@ -1,9 +1,7 @@
import socket from '@ohos.net.socket'; import socket from '@ohos.net.socket';
import buffer from '@ohos.buffer'; import hilog from '@ohos.hilog';
const TAG = 'socketTag[TcpDemo.TcpClient]' const TAG = 'socketTag[TcpDemo.TcpClient]'
import prompt from '@ohos.prompt'
import hilog from '@ohos.hilog';
export default class TcpClient { export default class TcpClient {
private localIp: string = '' private localIp: string = ''
@ -21,6 +19,7 @@ export default class TcpClient {
console.log(TAG, 'new Tcp', this.localIp, this.localIpPort, this.oppositeIp, this.oppositeIpPort) console.log(TAG, 'new Tcp', this.localIp, this.localIpPort, this.oppositeIp, this.oppositeIpPort)
this.tcp = socket.constructTCPSocketInstance(); this.tcp = socket.constructTCPSocketInstance();
} }
onError(callback?) { onError(callback?) {
this.tcp.on('error', err => { this.tcp.on('error', err => {
console.log(TAG, 'tcpOnerror', JSON.stringify(err)) console.log(TAG, 'tcpOnerror', JSON.stringify(err))
@ -34,6 +33,7 @@ export default class TcpClient {
// }) // })
}); });
} }
rebindTcp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string) { rebindTcp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.localIp = localIp this.localIp = localIp
@ -41,7 +41,9 @@ export default class TcpClient {
this.localIpPort = localIpPort this.localIpPort = localIpPort
this.oppositeIpPort = oppositeIpPort this.oppositeIpPort = oppositeIpPort
console.log(TAG, 'tcpreBind', this.localIp, this.localIpPort) console.log(TAG, 'tcpreBind', this.localIp, this.localIpPort)
let promise=this.tcp.bind({ address: this.localIp, port:parseInt(this.localIpPort), family: 1 }, err => { let promise = this.tcp.bind({
address: this.localIp, port: parseInt(this.localIpPort), family: 1
}, err => {
if (err) { if (err) {
globalThis.getCloseTcp = true globalThis.getCloseTcp = true
hilog.info(0x0000, 'testTag', "tcpreBinderror:" + JSON.stringify(err)); hilog.info(0x0000, 'testTag', "tcpreBinderror:" + JSON.stringify(err));
@ -61,10 +63,13 @@ export default class TcpClient {
// }); // });
} }
bindTcp() { bindTcp() {
console.log(TAG, 'tcpbind', this.localIp, 'localIp', this.localIpPort) console.log(TAG, 'tcpbind', this.localIp, 'localIp', this.localIpPort)
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let promise=this.tcp.bind({ address: this.localIp, port:parseInt(this.localIpPort), family: 1 }, err => { let promise = this.tcp.bind({
address: this.localIp, port: parseInt(this.localIpPort), family: 1
}, err => {
if (err) { if (err) {
console.log('testTag tcp bind faile'); console.log('testTag tcp bind faile');
globalThis.getCloseTcp = true globalThis.getCloseTcp = true
@ -87,10 +92,15 @@ export default class TcpClient {
} }
connectTcp() { connectTcp() {
console.log(TAG, 'tcpConnect', this.oppositeIp, 'localIp', this.oppositeIpPort) console.log(TAG, 'tcpConnect', this.oppositeIp, 'localIp', this.oppositeIpPort)
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let promise = this.tcp.connect({ address: {address: this.oppositeIp, port: parseInt(this.oppositeIpPort), family: 1} , timeout: 6000}); let promise = this.tcp.connect({
address: {
address: this.oppositeIp, port: parseInt(this.oppositeIpPort), family: 1
}, timeout: 6000
});
promise.then(() => { promise.then(() => {
this.tcp.setExtraOptions({ this.tcp.setExtraOptions({
@ -113,6 +123,7 @@ export default class TcpClient {
globalThis.getCloseTcp = true globalThis.getCloseTcp = true
setTimeout(() => { setTimeout(() => {
this.connectTcp() this.connectTcp()
resolve(false)
}, 2000) }, 2000)
console.log('testTagconnect,error') console.log('testTagconnect,error')
@ -153,11 +164,13 @@ export default class TcpClient {
// callback(value.message) // callback(value.message)
}); });
} }
offTcp(callback) { offTcp(callback) {
console.log(TAG, 'tcpofff') console.log(TAG, 'tcpofff')
this.tcp.off('testTagofmessg', callback); this.tcp.off('testTagofmessg', callback);
} }
closeTcp(callback) { closeTcp(callback) {
return new Promise((reslove, reject) => { return new Promise((reslove, reject) => {
console.log(TAG, 'tcpClose') console.log(TAG, 'tcpClose')