如何阅读send(sock_fd, line, size, 0);
我有一个这样的程序,if (send(new_socket,sendToEMVSS,EMVSSSendBufferLength,0)!=EMVSSSendBufferLength)
我尝试运行程序,但结果始终为!=EMVSSSendBufferLength
最佳答案
您确实需要保留返回值。
如果它是-1,那么您将在errno
中找到详细的错误信息。
如果它为正,但小于EMVSSSendBufferLength
,则意味着仅发送了许多字节,您必须通过单独的调用发送其余字节。该单独的调用可能会阻塞(如果未阻塞,则失败,如果没有阻塞,则失败),因为不发送所有内容的原因是传输窗口已满。
包真的是固定大小吗?您是否错误地传递了缓冲区的大小而不是实际消息的大小?