-4
我通过TCP套接字发送52个字节的数据。我测试了我的套接字发送10个字节,它工作正常,但现在send()返回-1。 我使用:c socket发送失败
write(sockfd, request, total_size + 1);
其中的sockfd是描述符(设定,没有错误),请求是一个char [200]和TOTAL_SIZE + 1 = 52。
为什么是发送()调用失败?
我通过TCP套接字发送52个字节的数据。我测试了我的套接字发送10个字节,它工作正常,但现在send()返回-1。 我使用:c socket发送失败
write(sockfd, request, total_size + 1);
其中的sockfd是描述符(设定,没有错误),请求是一个char [200]和TOTAL_SIZE + 1 = 52。
为什么是发送()调用失败?
正如评论者指出的那样,根据你写的问题不可能给出很多答案。但是:
为什么send()调用失败?
标准库调用告诉你他们在errno
失败的原因。试试:
#include <stdio.h>
//... make the write fail
perror("write failed");
并检查输出。
我看到一个写,但没有发送。是否难以检查errno是否存在特定的失败原因? – Jens
您正在调用'write()'而不是'send()'。这是你的意图吗? 'write()'失败时,'errno'是什么? – James
你应该发布更多的代码,只用一行和其他的描述来调试几乎是不可能的。 – pg1989