Как отправить поток строк через Wi-Fi на Android? - PullRequest
0 голосов
/ 28 июня 2019

Я подключаю Esp32 к моему телефону с Android через Wi-Fi, то есть esp работает как сервер точки доступа.Попытка отправить строку для чтения ESP.Вот ссылка на код esp в Arduino IDE:

Wifi_AP_server

Здесь много полезной информации о java-сокетах, но ни один из потоков не работает со мной иЯ действительно не могу обернуть голову вокруг них в этом простом случае, чтобы придумать мою реализацию !!Я пишу этот Java-код в MainActivity.java внутри AsyncTask, и он является частью MethodChannel, который вызывается flutter.

Socket socket = null;
DataOutputStream outputStream = null;
socket = new Socket("192.168.4.1", 80);
outputStream = new DataOutputStream (socket.getOutputStream());
outputStream.writeUTF("Hello\n");
socket.close();

Обратите внимание, что это сбой, потому что иногда он успешно отправляет два символа или один, в большинстве случаев он просто подключается и отключается с esp без отправки какого-либо символа.Я перепробовал все, что мог, пробуя разные потоки, читая буфер сообщений с esp на телефон и записывая обратно в этот буфер, как если бы это был эхо-сервер, который работал хорошо, но это нежелательный сценарий !!

Я решил задать этот вопрос здесь после того, как написал этот фрагмент кода Python, который убедил меня в том, что код Wifi_AP_server.ino esp работает правильно.

import socket
HOST = '192.168.4.1'  # The server's hostname or IP address
PORT = 80        # The port used by the server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall(b'Hello, world\n')
    data = s.recv(1024)
print('Received', repr(data))

Вы можете попробовать это по ссылке, и вы увидите, что она работает правильно.Поэтому, пожалуйста, помогите мне, как мне сделать это с помощью Java на Android?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...