-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