启动TCP服务
Dart
Future<void> startServer() async {
final server = await ServerSocket.bind(InternetAddress.anyIPv4, 12345);
print('Server listening on ${server.address}:${server.port}');
server.listen((Socket socket) {
print('Client connected: ${socket.remoteAddress.address}');
socket.listen(
(data) {
final message = String.fromCharCodes(data);
print('Received: $message');
socket.write('Echo: $message');
},
onDone: () => print('Client disconnected'),
);
});
}
连接TCP服务
Dart
try {
final socket = await Socket.connect(ip, 12345/*, timeout: Duration(seconds: 3)*/);
print('Connected to server');
socket.listen(
(data) {
print('Server response: ${String.fromCharCodes(data)}');
},
onDone: () => socket.destroy(),
);
print("send message");
_socket = socket;
socket.write('Hello from Flutter client!');
} catch (e) {
print('Error: $e');
}
很简单个功能,居然遇上问题了:iOS启动服务异常,作为客户端连接其他服务也不行,折腾了两天发现,是因为设置的系统版本低于iOS13.0,在Xcode中把 Minimum Deployments 改成13.0就可以了。