YaKotikTvoy
@YaKotikTvoy
Стьюдик

Как отправить сообщение на ESP8266?

У меня есть ESP8266, оно подключено к WiFi, раздаваемое с телефона, на него я залил UDP сервер.
Вот
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
WiFiUDP Udp;
unsigned int localUdpPort = 4210;
char incomingPacket[256];
char replyPacket[]="Привет! Получил сообщение :-)";
const char* ssid = "Busik";
const char* password = "gytAw789h";
void setup()
{
  Serial.begin(115200);
  //WiFi.softAP("Busik", "9598489");
  WiFi.begin(ssid, password);
  Serial.println();
  Serial.printf("Подключились к WiFi:%s",ssid);
  while(WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");  
  }
  Serial.println("Подсоединился");
  Udp.begin(localUdpPort);
  Serial.printf("Прослушиваем IP %s, udp-port %d\n",WiFi.localIP().toString().c_str(), localUdpPort);
}
void loop()
{
  int PacketSize = Udp.parsePacket();
  if(PacketSize)
  {
    Serial.printf("Received %d bytes from %s, port %d",PacketSize, Udp.remoteIP().toString().c_str(), localUdpPort);
    int len = Udp.read(incomingPacket, 255);
    if(len > 0)
    {
     
      incomingPacket[len] = 0;
    }
    Serial.printf("Пришедший пакет %s",incomingPacket);
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(replyPacket);
    Udp.endPacket();  
  }
}

И есть консольное приложение на ноуте - клиент UDP, подключенное к тому же WiFi что и ESP8266.
Как мне отправить сообщение на ESP8266, когда выскакивает вот это(System.Net.Sockets.SocketException: "Сделана попытка выполнить операцию на сокете при отключенной сети")?
Подскажите пожалуйста, что не так делаю, натолкните в нужное направление.
Код приложения:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace ClientTCP
{
    internal class Program
    {
        static void Main(string[] args)
        {
            #region TCP Client
            //const int port = 8080;
            //const string ip = "127.0.0.1";
            //IPEndPoint tcpEndPoint = new IPEndPoint(IPAddress.Parse(ip), port);
            //Socket tcpSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
            //Console.WriteLine("Введите сообщение");
            //string message = Console.ReadLine();
            //byte[] data = Encoding.UTF8.GetBytes(message);
            //tcpSocket.Connect(tcpEndPoint);
            //tcpSocket.Send(data);
            //byte[] buffer = new byte[256];
            //byte size = 0;
            //StringBuilder answer = new StringBuilder();
            //do
            //{
            //    size = (byte)tcpSocket.Receive(buffer);
            //    answer.Append(Encoding.UTF8.GetString(buffer,0,size));
            //}
            //while (tcpSocket.Available > 0);
            //Console.WriteLine(answer.ToString());

            //tcpSocket.Shutdown(SocketShutdown.Both);
            //tcpSocket.Close();
            //Console.ReadLine();
            #endregion
            const string ip = "127.0.0.1";
            const int port = 8082;
            IPEndPoint udpPoint = new IPEndPoint(IPAddress.Parse(ip), port);

            Socket udpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            udpSocket.Bind(udpPoint);
            while (true)
            {
                Console.WriteLine("Введите сообщение: ");
                string message = Console.ReadLine();
                IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("192.168.11.92"), 4210);
                udpSocket.SendTo(Encoding.UTF8.GetBytes(message), serverEndPoint);

                byte[] buffer = new byte[256];
                byte size = 0;
                StringBuilder data = new StringBuilder();
                EndPoint senderEndPoint = new IPEndPoint(IPAddress.Any, 0);

                do
                {
                    size = (byte)udpSocket.ReceiveFrom(buffer, ref senderEndPoint);
                    data.Append(Encoding.UTF8.GetString(buffer));
                }
                while (udpSocket.Available > 0);
                Console.WriteLine(data);
            }
        }
    }
}

Вот сама ошибка
62728d4a8d342346775810.png
  • Вопрос задан
  • 268 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы