#include byte mac[] = { 0x04, 0xE9, 0xE5, 0x10, 0x00, 0x01 }; IPAddress ip(192, 168, 1, 100); IPAddress serverIP(192, 168, 1, 101); const int serverPort = 8888; int i; byte cnt = 0; union split_u16{ uint16_t size16; byte size8[2]; }; union split_u16 split; EthernetClient client; #define max_package_size 1024 uint16_t package_size = 1024; byte buffer[max_package_size]; void setup() { Serial.begin(921600); //while (!Serial); Serial.println("Initializing Ethernet..."); Ethernet.begin(mac, ip); if (Ethernet.hardwareStatus() == EthernetNoHardware) { Serial.println("Ethernet hardware not found!"); while (true); } if (Ethernet.linkStatus() == LinkOFF) { Serial.println("Ethernet cable not connected!"); } Serial.println("Connecting to server..."); if (client.connect(serverIP, serverPort)) { Serial.println("Connected to server!"); } else { Serial.println("Connection failed."); } for (i = 0; i < max_package_size/*-random(300)*/; i++) { buffer[i] = i; // Fill buffer with sample data (0-255) } package_size=i; delay(100); } void loop() { send_package(); //delayMicroseconds(100); // Small delay to avoid overloading the receiver } void send_package(){ if (!client.connected()) { Serial.println("Connection lost. Reconnecting..."); client.stop(); delay(1000); client.connect(serverIP, serverPort); return; } const char SendMsg[] = "P_A"; //Confirm request is sent client.write(SendMsg, sizeof(SendMsg)); //Serial.println("Sending packet..."); client.write(buffer, package_size); cnt++; buffer[0] = cnt; }