2012-09-22 101 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"); 

並檢查輸出。