0
我想以相同大小的塊發送數據。 但是如果文件大小不是卡盤大小的倍數,那麼在接收機端將會增加額外的大小 。 我想到解決方案獲取文件大小,並將塊分割爲文件大小。 然而,這種解決方案是不工作可以anyboby告訴我發送方和接收方的套接字讀寫文件大小變化
這裏是我的代碼
total_chunks = size/CHUNK_SIZE;
partial_chunks = size % CHUNK_SIZE;
int write_fd = open("test3.txt",O_CREAT|O_WRONLY,0777);
if(fd != -1)
{
if(total_chunks >= 1)
{
data_chunk = (char *)malloc(sizeof(char) * CHUNK_SIZE);
bzero((char *) data_chunk, sizeof(data_chunk));
for(iteration = 0;iteration <total_chunks;iteration++)
{
read(fd,data_chunk,sizeof(data_chunk));
write(write_fd,data_chunk,CHUNK_SIZE);
}
free(data_chunk);
}
if(partial_chunks != 0)
{
data_chunk = (char *)malloc(sizeof(char) * partial_chunks);
bzero((char *) data_chunk, sizeof(data_chunk));
read(fd,data_chunk,sizeof(data_chunk));
write(write_fd,data_chunk,sizeof(data_chunk));
}
close(fd);
close(write_fd);
}