Для подтверждения концепции, когда 2 приложения, написанные на Flutter и работающие на одном устройстве, должны обмениваться информацией, я использую сокеты 'dart: io'.
Одно из 2 приложений реализует SocketServer для получения информации, а другой инициализирует обмен данными через сокеты.
С точки зрения соединения это работает нормально, используя следующий код:
Код сервера:
ServerSocket.bind('127.0.0.1', 8080).then((ServerSocket socketServer) {
socketServer.listen((Socket socket) {
socket.listen((List<int> data){
String result = String.fromCharCodes(data);
print('received: $result');
});
});
}).catchError(print);
Код клиента:
Socket.connect('127.0.0.1', 8080).then((socket) {
String data = 'Les élèves regardent par la fenêtre';
socket.write(data);
print("sent: $data");
}).catchError(print);
Однако, когда я пытаюсь отправить строку, содержащую подчеркнутые символы, я получаю следующий результат:
sent: Les élèves regardent par la fenêtre
received: Les élèves regardent par la fenêtre
Это выглядит как проблема, связанная с кодировкой, но я пока не смог ее решить.
Кто-нибудь мог бы представить, как это сделать? Спасибо