【发布时间】:2019-10-28 06:18:50
【问题描述】:
我正在尝试连接到 HHC-NET2D 中继设备。
此设备允许连接到 tcp 客户端。我还没有找到可以向设备发送参数的解决方案。如果有人知道通过 tcp 客户端建立连接并发送参数的推荐方法,那将会很有帮助。
支持
1.支持TCP Server、TCP client、UDP
2、在TCP服务器中支持4个客户端连接。假设本地端口为5000。5000端口可以
连接到 TCP 客户端。
3.支持TCP MODBUS协议。
控制命令
5. 向HHC-NET2D发送“on1”将开启First relay。
6. 向HHC-NET2D发送“on2”将开启第二次继电器。
7. 向HHC-NET2D发送“off1”将开启First relay。
8. 向HHC-NET2D发送“off2”将开启第二次继电器。
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(...)
}
}
【问题讨论】: