Почему не получается принять все пакеты с ESP, ESP там у соседа уже 100 и более отправлено, а у меня, только 16 принято.
private void HumidityReception()//метод работает в потоке
{
int i = 0;
while (true)
{
Socket socketWithData = socketServer.Accept();
if (socketWithData.Available > 0)
{
byte[] buffer = new byte[256];
string data;
/*byte size = (byte)socketWithData.Receive(buffer);
data = Encoding.UTF8.GetString(buffer, 0, size);*/
do
{
byte size = (byte)socketWithData.Receive(buffer);
data = Encoding.UTF8.GetString(buffer, 0, size);
Invoke((Action)(() =>
{
i++;
sizelable.Text = data + $" пакет по счёту: {i}";
}));
} while (socketWithData.Available > 0);
string[] data2 = new string[] { data.Split(' ')[0], data.Split(' ')[1], data.Split(' ')[2], $"{DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")}" };
Invoke((Action)(() =>
{
HimidityList.Items.Add(new ListViewItem(data2));
}));
SqlCommand command = new SqlCommand("Insert into Vlazhnost (Humidity, [Greenhouse number], Number, [Wake up time]) values(@Humidity, @Greenhousenumber, @Number, @Wakeuptime)", DBVlazhnost);
command.Parameters.AddWithValue("@Humidity", data2[0]);
command.Parameters.AddWithValue("@Greenhousenumber", data2[1]);
command.Parameters.AddWithValue("@Number", data2[2]);
command.Parameters.AddWithValue("@Wakeuptime", data2[3]);
command.ExecuteNonQuery();
}
}
}
#include<ESP8266WiFi.h>
int data = 0;
char* host = "192.168.75.92";
uint16_t port = 80;
void setup() {
WiFi.begin("Busik", "gytAw789h");
while(WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(3000);
}
pinMode(A0, INPUT);
}
void loop() {
WiFiClient client;
client.connect(host, port);
delay(3000);
if(client.connected())
{
client.print(String(analogRead(data)) + " 4 74");//1ое это значение влажности, 2ое номер теплицы, 3ье номер датчика
delay(2000);
client.stop();
}
}