0
我有以下代碼,並且在發送了幾百個字節後寫入套接字寫入套接字。我已經使用「rb」標誌讀取fread字節。TCP套接字在循環中途停止寫入
char filebuff[size_aux];
i=0;
int negative=0;
int positive=0;
int zero=0;
while(i<size_aux) //size_aux is 79067
{
bytesSent = write(clnt_fd, &filebuff[i], 1);
if(bytesSent>0) positive++;
if(bytesSent<0) negative++;
if(bytesSent==0) zero++;
i++;
}
它印什麼是這樣的:
Positive: 868
Negative: 78199
Zero: 0
我已經檢查其發送的連續868直,然後停止發送,從而爲-1寫轉值。發送的字節數是隨機的,有時像868個其他時間(如600),但與文件的實際大小相比較小。 在此之前,我不得不插入以下代碼:
signal (SIGPIPE, SIG_IGN);
因爲在while循環的中間,將退出我的程序到終端。
套接字是否非阻塞? – usr 2014-10-06 17:12:32
閱讀寫文檔。看看錯誤代碼。現在修復您的代碼以詳細查看這些錯誤代碼,或者至少打印出您的代碼正在獲取的錯誤。 – 2014-10-06 17:12:49
errno給我的是0,所以我不能做太多。我如何知道套接字是否是非阻塞的,我無法訪問服務器代碼。 – Elsendion 2014-10-06 17:16:59