2012-09-22 72 views
-4

我通过TCP套接字发送52个字节的数据。我测试了我的套接字发送10个字节,它工作正常,但现在send()返回-1。 我使用:c socket发送失败

write(sockfd, request, total_size + 1); 

其中的sockfd是描述符(设定,没有错误),请求是一个char [200]和TOTAL_SIZE + 1 = 52。

为什么是发送()调用失败?

+0

我看到一个写,但没有发送。是否难以检查errno是否存在特定的失败原因? – Jens

+2

您正在调用'write()'而不是'send()'。这是你的意图吗? 'write()'失败时,'errno'是什么? – James

+0

你应该发布更多的代码,只用一行和其他的描述来调试几乎是不可能的。 – pg1989

回答

1

正如评论者指出的那样,根据你写的问题不可能给出很多答案。但是:

为什么send()调用失败?

标准库调用告诉你他们在errno失败的原因。试试:

#include <stdio.h> 

//... make the write fail 
perror("write failed"); 

并检查输出。