我試圖想有送過來一個TCP套接字的視頻文件的最好方法。我製作了一個標準套接字程序,但在read
命令之後,我不知道如何才能保存它。最佳的方式發送視頻通過TCP套接字用C
代碼示例
//bind server socketfd
if (bind(sfdServer, (struct sockaddr*)&adrServer, ServerAddrLen) < 0)
error("ERROR binding");
listen(sfdServer, 5);
while(1){
printf("Waiting for connections...\n");
sfdClient = accept(sfdServer, (struct sockaddr*)&adrClient, &ClientAddrLen);
if(sfdClient < 0)
error("ERROR accepting");
printf("Connection Established.\n");
//set buffer to zero
bzero(buff, 2048);
printf("Reading from client.\n");
numChar = read(sfdClient, buff, 2048);
//What should go here?
close(sfdClient);
close(sfdServer);
}
請問我只是緩衝保存爲文件movie.mp4或類似的東西?我意識到我可能需要更改我的緩衝區大小或可能將它發送成塊。但我無法找到任何有關如何做到這一點的最佳方法。任何幫助或正確的方向點將不勝感激!
好的使用這個信息我能夠得到一切整理出來。到目前爲止,我可以將文本從java客戶端傳輸到此C服務器。但是,就像你有它,我假設只要我從客戶端接收數據時正確地轉儲緩衝區,它應該以同樣的方式傳輸視頻文件? – 2011-02-03 23:20:19
如果我正確理解你的問題,那麼是的:對於你收到的每個緩衝區(例如2048或更少的字節),如果你將它寫出到你的文件中,直到你沒有收到更多的字節,它應該都可以工作。網絡連接和套接字不關心它是文本還是二進制文件。 – payne 2011-02-06 02:58:02