上次寫的檔案傳輸程式在傳輸大檔案時會看人品崩潰,問題出在send()和buffersize上,
在cilent.c的程式上改寫如下地方
#define buffer_size 1024
sender()函式中改寫如下兩處
send(sockfd, &head_buf, strlen(head_buf), 0);
sleep(5);
long long read_size = 0;
int ret = send(sockfd, buf, read_count, 0);
usleep(1000);
if(ret <= 0)
之後在執行程式可以發現沒有崩潰的錯誤產生了,原因在於send函式傳送資料過快,緩衝區接收不過來,便會造成洩露。
Socket方法LAN多執行緒檔案傳輸
1.思維 為了實現各種檔案的大小可以被傳送和接收的,它可以被設定為傳送和接收緩衝器環。並記錄檔案的位置讀取,假設讀入緩衝區的位元組的特定數目大於緩衝區的大小較小。然後該檔案被傳送,退出傳送週期,關閉連線。和csocket它被阻止。收到傳送端傳送的全部內容,直到傳送端連線關閉。接收端退出接收迴圈。迴圈...
通訊 C 多執行緒Socket 檔案傳輸
服務端 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.wi...
通訊 C 多執行緒Socket 檔案傳輸
服務端 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.wi...