我正在尝试连接到 HHC-NET2D 中继设备。
该设备允许连接到 TCP 客户端。我还没有找到可以将参数发送到设备的解决方案。如果有人知道通过 tcp 客户端建立连接并发送参数的推荐方法,那将会很有帮助。
支持
1.支持TCP服务器、TCP客户端、UDP
2. TCP服务器支持4个客户端连接。假设本地端口为5000。端口5000可以
连接到 TCP 客户端。
3.支持TCP MODBUS协议(protocol)。
控制命令
5. 发送“on1”到HHC-NET2D将打开第一个继电器。
6. 发送“on2”到HHC-NET2D将打开第二个继电器。
7. 发送“off1”到HHC-NET2D将打开第一个继电器。
8. 发送“off2”到HHC-NET2D将打开第二个继电器。
Read more here: https://es.aliexpress.com/item/32358735415.html
import 'dart:io';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomeApp(),
);
}
}
class HomeApp extends StatefulWidget {
@override
_HomeAppState createState() => _HomeAppState();
}
class _HomeAppState extends State<HomeApp> {
Socket socket;
String name;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(name == null ? 'NO CONNECTED' : name),
),
body: Container(
child: Column(
children: <Widget>[
RaisedButton(
child: Text('Connect'),
onPressed: (){
connect();
},
),
RaisedButton(
child: Text('Send Data'),
onPressed: (){
sendData();
},
)
],
),
),
);
}
// Socket connection
void connect() {
Socket.connect("ipHere", portHere).then((Socket sock) {
socket = sock;
socket.listen(
dataHandler,
onError: errorHandler,
onDone: doneHandler,
cancelOnError: false
);
});
}
void dataHandler(data){
setState(() {
name = new String.fromCharCodes(data).trim();
});
}
void errorHandler(error, StackTrace trace){
print(error);
}
void doneHandler(){
socket.destroy();
}
void sendData(){
//socket.write(...)
}
}
最佳答案
首先使用您要发送的消息创建一个字符串变量。
并在您的代码中更新:
socket.write(HERE_STRING_MESSAGE);
关于sockets - Flutter:如何作为 tcp 客户端发送包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58582428/