多執行緒檔案傳輸改進(1)

2021-08-10 15:08:37 字數 449 閱讀 7632

上次寫的檔案傳輸程式在傳輸大檔案時會看人品崩潰,問題出在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...