jeremy el programa se ve algo raro, en primer lugar te aconsejo que leas de las MSDN, vienen ejemplos de como usar los string,y demás. Si consigues el programa hecho no tendrá gracia no?... consejos:
Esta declaración la veo rara rara:
string hora ;
string minuto ;
string segundo ;
string fecha;
Si tu hora, minuto y segundo son byte, pq no los declaras como tal y después los concatenas en un string:
byte hora = 0;
byte minuto = 0;
byte segundo = 0;
string fecha;
Después esta parte:
byte* receive_buf = stackalloc byte[3];
DWORD RecvLength = 3;
ReceivePacket(receive_buf, &RecvLength);
hora = receive_buf[0];
minuto = receive_buf[1];
segundo = receive_buf[2];
resultado = hora.tostring() + ":" + minuto.tostring() + "." + segundo.tostring();
Prueba así, quizá tengas que hacer algún cast más, lo he hecho a webo sin compilador y no hilo muy fino yo tampoco. Visual C# es muy puñetero al principio con esto de los casts, te recomiendo que leas, leas, leas, leas de las msdn, de páginas como code project viendo ejemplos, escribiendo en google lo que quieres hacer, leas, leas leas y luego preguntes
saludos