我在我的程序中使用套接字让客户端与证明者即服务器进行通信。首先,客户端将本地文件发送给证明者,然后成功。然后,客户端将该文件的签名发送给证明者,但该程序停滞不前。我认为证明者的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
证明者如何知道文件何时结束并且签名开始?换句话说:你的消息协议是什么样的? –