我在我的程序中使用套接字讓客戶端與證明者即服務器進行通信。首先,客戶端將本地文件發送給證明者,然後成功。然後,客戶端將該文件的簽名發送給證明者,但該程序停滯不前。我認爲證明者的recv
函數不能接收任何數據,所以失敗了,但我不知道它爲什麼會發生。任何人都可以解釋嗎?使用套接字來溝通的程序卡住
/* 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);
}
證明者的'recv'函數在哪裏? –
證明者的recv功能太長。 – sunwhut
證明者如何知道文件何時結束並且簽名開始?換句話說:你的消息協議是什麼樣的? –