FTP 小結
多線程FTP:多線程
- 以線程爲單位來處理socket鏈接,每一個線程單獨維護一個當前目錄變量(線程局部變量)。Linux中的實現是以pthread_key_t做爲全局鍵來映射到每一個線程的局部變量(內裏的細節就是映射到線程局部變量的地址)
- socket上的每一個I/O流程分解爲單獨的函數,以socket fd爲參數
- 爲NULL的fp和-1的fd,不用fclose()和close()
- fgets會讀取’\n’,也須要讀取'\n',同時client端負責過濾輸入的字符串,以後再發送,server端可不用過濾
- 同一端必須全用同一種socket Input函數,和同一種socket Output函數,不要read()和fread()混用
- fwrite()以後須要fflush()才能將內容write到TCP緩衝區中
歡迎關注本站公眾號,獲取更多信息