The client has to send sensor data to server, Unfortunately I don't know how to receive/print data correctly on the server side to serial monitor , The data received/prints as gibberish.
Client side :
void SendTCP(unsigned long pulseLength)
{
if (!client.connect(ipBroadCast, tcpRemotePort)) {
Serial.println("TCP Connection failed");
Serial.println(client.connect(ipBroadCast, tcpRemotePort));
return;
}else
{
Serial.println("TCP Connected");
}
client.write((uint8_t*) &pulseLength,4);
}
Server side :
void ReceiveTCP()
{
WiFiClient client = server.available();
if (client) {
if (client.connected()) {
Serial.println("Client Connected ");
}
// Wait for data from client to become available
while (client.connected() && !client.available()) {
delay(1);
}
// Read incoming message
if (client.available() > 0) {
Serial.print("incoming :");
int size;
while ((size = client.available()) > 0) {
uint8_t* msg = (uint8_t*)malloc(size);
size = client.read(msg, size);
Serial.write(msg, size);
free(msg);
}
}
// close the connection:
client.stop();
}
}
*Note : with same sending method I am able to read the data correctly on PC using server
written in java :
long pulseLength = 0;
byte[] recivedULBuffer = new byte[4];
inputStreamFromClient.read(recivedULBuffer);
for (int i = 0; i < recivedULBuffer.length; i++){
pulseLength += ((long) recivedULBuffer[i] & 0xffL) << (8 * i);
}
System.out.println(pulseLength);
Thanks !