OpenHarmony开发者论坛
标题:
使用TCP出现的一些问题
[打印本页]
作者:
camel
时间:
2024-7-22 16:20
标题:
使用TCP出现的一些问题
[md]### 用手机TCP作为客户端主动连接电脑TCP服务端
手机每单击一次按钮,发送一个递增的数字到服务端,发送两次之后,在发送第三次时服务端接收不到了。但服务端发送到客户端没问题。
按钮代码
```
Button('发送TCP消息')
.onClick(() => {
this.message_send+=1;
TCP_Connect.TCP_send(TCP_Connect.Target_IP,this.message_send.toString());
}).width('90%').height(80).margin({ top: 50 }).type(ButtonType.Capsule)
```
创建TCP对象及绑定本地地址代码(about ToAppear时执行)
```
TCPInit():void{
// 创建一个TCPSocket连接,返回一个TCPSocket对象。
TCP_Connect.tcp = socket.constructTCPSocketInstance();
TCP_Connect.tcp.on('message', (value: SocketInfo) => {
console.log("on message");
this.message_recv = this.resolveArrayBuffer(value.message);
/*
let buffer = value.message;
let dataView = new DataView(buffer);
for (let i = 0; i < dataView.byteLength; ++i) {
this.message_recv += String.fromCharCode(dataView.getUint8(i));
}
* */
console.info("on connect received:" + TCP_Connect.Receive_message);
});
TCP_Connect.tcp.on('connect', () => {
console.log("on connect");
});
TCP_Connect.tcp.on('close', () => {
console.log("on close");
});
// 绑定本地IP地址和端口。
TCP_Connect.Local_IP.address = JSON.stringify(wifiManager.getIpInfo().ipAddress);
TCP_Connect.Local_IP.port = 1234;
TCP_Connect.tcp.bind(TCP_Connect.Local_IP, (err) => {
if (err) {
console.log('bind fail');
return;
}
console.log('bind success');
});
}
}
```
TCP发送代码
```
static TCP_send(taget_ip:string,msg:string):void
{
console.log("aaaa----")
// 连接到指定的IP地址和端口。
this.ipAddress.address = taget_ip;
this.ipAddress.port = 5678;
let tcpConnect : socket.TCPConnectOptions = {} as socket.TCPConnectOptions;
tcpConnect.address = this.ipAddress;
tcpConnect.timeout = 6000;
this.tcp.connect(tcpConnect).then(() => {
console.log('connect success');
let tcpSendOptions: socket.TCPSendOptions = {
data: msg
}
this.tcp.send(tcpSendOptions).then(() => {
console.log('send success');
}).catch((err) => {
console.log('send fail');
});
}).catch((err) => {
console.log('connect fail');
});
}
```
### 【运行环境】
硬件:HuaWei Nova 10
DevEvoStudio版本:4.0
SDK版本:API 9
[/md]
作者:
深开鸿_王石
时间:
2024-7-23 08:46
你试下吧connect做个单独button,也就是只连一次,然后多次send,应该是connect多次被调用有问题
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5