在 Linux 中,優雅地關閉 socket 連接需要遵循以下步驟:
shutdown()
函數關閉寫操作。這將發送一個 FIN 包給對方,表示你已經完成了發送數據。shutdown(sockfd, SHUT_WR);
char buffer[1024];
while (1) {
ssize_t recv_len = recv(sockfd, buffer, sizeof(buffer), 0);
if (recv_len <= 0) {
break;
}
// 處理接收到的數據
}
close()
函數關閉 socket。這將釋放與 socket 相關的所有資源。close(sockfd);
注意:在實際編程中,你可能需要處理錯誤情況,例如 shutdown()
、recv()
和 close()
函數調用失敗的情況。在這些情況下,你應該根據錯誤代碼進行適當的錯誤處理。
通過遵循這些步驟,你可以優雅地關閉 Linux 中的 socket 連接,確保數據的完整性和正確性。