你好,我試圖模擬兩個程序,從網絡發送和接收文件,如客戶端和服務器。首先,我必須將文件拆分爲4096個字節的頁面,並將其發送到其他程序以創建該文件。我通過網絡發送和接收文件的方式是通過寫入和讀取。所以在客戶端程序中,我必須創建一個函數來接收這些包並將它們放入一個文件中。我無法想出將軟件包放入文件的方法。例如我一個文件有2頁,我必須使用這2頁創建另一個文件。另外我不知道他們是否按順序排列,所以我必須創建該文件並將它們放在正確的位置。在打開的文件的特定位置寫()
/*consider the connections are ok and the file's name is at char* name*/
int file=open(name,"O_CREAT | O_WRONLY,0666);
char buffer[4096];
int pagenumber;
for(int i=0;i<page_number;i++){
read(socket,&pagenumber,sizeof(int));
read(socket,buffer,sizeof(int));
write(file(pagenumber*4096),buffer,4096);
}
此代碼適用於pagenumber = 0,但pagenumber = 1沒有任何反應!你可以幫我嗎?提前致謝!
增加了兩個缺少';'和2')'...這可能不是問題 –
'寫(文件(pagenumber * 4096),緩衝區,4096);'?什麼是'文件(pagenumber * 4096)'? –
我並不是真正的意思,但它是幫助你理解問題的唯一方法! – JmRag