Ich verwendete Socket in meinem Programm, um den Client mit dem Prüfer, nämlich den Server kommunizieren zu lassen. Erstens sendet der Client eine lokale Datei an den Prüfer, und es ist erfolgreich. Dann sendet der Client Signaturen dieser Datei an den Prüfer, aber das Programm ist hängengeblieben. Ich denke, die recv
Funktion des Prover kann keine Daten empfangen, so dass es fehlgeschlagen ist, aber ich weiß nicht, warum es passiert ist. Kann mir das jemand erklären?das Programm mit Socket zu communicat hat stecken
/* send file */
if (on_cmd_send_file_client(sockProver, username, party, filename, blocksize, blocknum)) {
printf("%s(%d)-%s:%d-%s\n", __FILE__, __LINE__, __FUNCTION__, errno, strerror(errno));
return (errno ? errno : -1);
}
/* send signature */
length = pairing_length_in_bytes_G1(pairing);
if (on_cmd_send_sig_client(sockProver, username, party, filename, length, blocknum)) {
printf("%s(%d)-%s:%d-%s\n", __FILE__, __LINE__, __FUNCTION__, errno, strerror(errno));
return (errno ? errno : -1);
}
Wo ist die 'recv'-Funktion des Provers? –
Die Recv-Funktion des Prover ist zu lang. – sunwhut
Woher weiß der Prüfer, wann die Datei endet und die Signaturen beginnen? Mit anderen Worten: Wie sieht Ihr Nachrichtenprotokoll aus? –