У меня есть 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);
}
}
}
}
Вот сама ошибка