c# bytes array index was outside the bounds of the array -


this question has answer here:

i'm reading 5 bytes array

readdata = new byte[5];  bytewaiting = serialcomport.bytestoread;  while (bytewaiting > 0)  {     readdata[i++] = (byte)serialcomport.readbyte(); **<--error: index outside bounds of array**     bytewaiting = bytewaiting - 1;  } 

the receive buffer includes serial driver's receive buffer internal buffering in serialport object itself.

because bytestoread property represents both serialport buffer , windows-created buffer, can return greater value readbuffersize property.

instead of watching bytestoread should subscribe datareceived event. automatically called when new data arrives.

if don't know how on above link corresponding msdn page you'll find example on how subscribe event , should within it.


Comments