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連接...