import 'dart:convert';
import 'dart:io';
import 'package:flutter_umi_oil/component_base/api/api.dart';
class SocketManage {
static Socket _socket;
// 建立连接
static void connectSocket() async {
await Socket.connect(
"${Api.IP}",
Api.TcpPort,
timeout: Duration(seconds: 5),
).then((Socket socket) {
_socket = socket;
_socket.listen(onData,
onError: onError, onDone: onDone, cancelOnError: false); // 订阅流
}).catchError((e) {
print("Unable to connect: $e");
connectSocket(); // 连接超时,重新建立连接
});
}
// 收到消息回调
static void onData(event) {
String str = utf8.decode(event);
print("---onData---$str");
}
// 收到错误回调
static void onError(err) {
print("---onError---");
}
// 断开回调
static void onDone() {
Future.delayed(Duration(milliseconds: 2000), () {
connectSocket(); // 重新建立连接
});
print("---onDone---");
}
// 发数据
static void writeData(Object object){
_socket.write(object);
}
// 关闭流通道
static void socketClose(){
_socket.close();
}
}
Flutter TCP连接
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、查看哪些IP连接本机 netstat -an 二、查看TCP连接数 1)统计80端口连接数 netstat -...
- 转自:https://www.cnblogs.com/zhoudayang/p/6012257.html 为什么建...
- 一,http连接 http协议是 请求/应答 模型。客户端发送请求,服务端对请求做一次响应。服务端只能在客户端发送...
- TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法 备注:本文主要介绍TCP编程中...
- TCP是一个面向连接的协议,任何一方在发送数据之前,都必须先在双方之间建立一条连接。所以,本文就主要看看TCP连接...