shutdown()與closesocket()的區(qū)別
shutdown可以分別關(guān)閉讀寫或者同時關(guān)閉讀寫:
1) 如果關(guān)閉讀,則接受緩沖區(qū)的未讀出的所有數(shù)據(jù)都將丟失,以后不會再接受任何數(shù)據(jù) 2) 如果關(guān)閉寫,如果輸出緩沖區(qū)內(nèi)有數(shù)據(jù),則所有的數(shù)據(jù)將發(fā)送出去后將發(fā)送一個FIN信號 而close則是關(guān)閉該socket,馬上發(fā)送FIN信號,所有的未完成發(fā)送或者接受的數(shù)據(jù)都將被丟失 對于慢速網(wǎng)絡(luò),應(yīng)該先進(jìn)行shutdown,然后一定的時間延遲,再close該socket
|