Я хотел бы запустить комбинацию кода Dart и Java, которые могут взаимодействовать друг с другом. Поэтому я выбрал go с сокетами, с сокетом сервера, записанным в Java, и сокетом клиента, написанным в Dart.
Это код, который я написал:
Сервер
ServerSocket server = new ServerSocket(12345);
server.setSoTimeout(0);
System.out.println("waiting for connection...");
while (true) {
try {
Socket client = socket.accept();
DataInputStream input = new DataInputStream(client.getInputStream());
DataOutputStream output = new DataOutputStream(client.getOutputStream());
System.out.println("connected to " + client.getLocalSocketAddress() + ".");
while (true) {
output.write(input.readLine());
}
} catch (IOException e) {
System.out.println("disconnected.\n\nwaiting for connection...");
}
}
Клиент
Socket client = await Socket.connect('localhost', 12345);
client.write('hello there\n');
client.close();
К сожалению, сервер не получает сообщение ping, отправленное клиентом. Теперь я предполагаю, что проблема заключается в коде Dart, потому что при выполнении клиента, написанного в Java, все работало нормально.
Знаете ли вы, как решить эту проблему? Если так, пожалуйста, дайте мне знать, хо. Заранее благодарим!
Обратите внимание:
Поскольку одновременно никогда не будет более одного клиента, я выбрал go с таким подходом. Я знаю, что обычно это не очень хороший стиль.