【问题标题】:c socket send failure [closed]c套接字发送失败[关闭]
【发布时间】:2012-09-14 20:21:38
【问题描述】:

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

   write(sockfd, request, total_size + 1);

其中 sockfd 是描述符(设置没有错误),请求是 char[200] 和 total_size + 1 = 52。

为什么 send() 调用失败?

【问题讨论】:

  • 我看到了写入,但没有发送。对于特定的失败原因检查 errno 是否太难了?
  • 你打电话给write()而不是send()。这是你的意图吗?当write() 失败时,errno 是什么?
  • 您可能应该发布更多代码,仅使用一行代码和其他代码的描述几乎不可能进行调试。
  • 一个简单的 perror() 会告诉你。不要把时间浪费在互联网上。

标签: c sockets send


【解决方案1】:

正如评论者所指出的,根据您所写的问题,不可能给出很多答案。然而:

为什么 send() 调用失败?

标准库调用会告诉您它们在 errno 中失败的原因。试试:

#include <stdio.h>

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

并检查输出。

【讨论】:

    猜你喜欢
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2016-01-07
    • 2020-12-24
    • 2014-07-21
    相关资源
    最近更新 更多