Flutter TCP通信
启动TCP服务
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服务
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就可以了。