c++语言 tcp例子,C++中TCP通信实现文件传输
作為Computer networks課程的一個project,我們需要實現用TCP在mininet中client和server的相互通信,需要能夠傳輸文本文件,binary file 和image file。整個project的目的還是比較明確的。我主要列出了一下幾個問題,需要在代碼中實現。
1. 實現main函數的接口
因為client和server 需要的參數需要通過命令行輸入,所以需要用getoptlong函數來實現。
2. 實現socket programming中的功能
在這個項目中提供了socket programming的接口,按照需要設置即可。
3. 連續send造成的粘包問題
由于TCP擁有優化算法,可以將多個send的數據被一個recv收到,所以造成粘包問題。本項目中會要求先發送文件長度,再發送文件,連續發送造成文件長度和文件粘合在一起,造成無法讀出文件。解決辦法是加入sleep()函數在兩次send之間。這樣就能將兩次send分開了。
4. 大文件的接收問題
大文件的接受容易由于buffer長度的限制,造成丟失。因此需要設置一個MAX_MESSAGE_SIZE。分成多次完成接收。本來想要在send端也多次發送,效果不好。
5. 文件的讀寫
由于文件的類型不確定,打開文件都需要用binary格式,讀寫的時候一定要注意,用read()和write()函數,千萬不要<>,因為后一種方式沒法確定文件類型。
大概就是這些,因為課程沒有結束,暫時就不放代碼了,以后補齊。
C++中TCP通信實現文件傳輸
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的c++语言 tcp例子,C++中TCP通信实现文件传输的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML+CSS+JS实现 ❤️touc
- 下一篇: linux redis 启动用户,red