在Linux中,setsockopt()函數(shù)是用來設(shè)置套接字選項的。它的原型如下:
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
參數(shù)說明:
setsockopt()函數(shù)可以用來設(shè)置套接字的各種選項,例如設(shè)置SO_REUSEADDR選項可以使套接字在關(guān)閉后立即釋放端口,設(shè)置SO_RCVBUF和SO_SNDBUF選項可以調(diào)整套接字的接收和發(fā)送緩沖區(qū)大小,設(shè)置SO_KEEPALIVE選項可以使套接字保持連接等。
以下是一些常見的選項名及其用途:
例如,下面的代碼片段演示了如何設(shè)置SO_REUSEADDR選項:
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
int reuse = 1;
setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
這段代碼創(chuàng)建了一個TCP套接字,并設(shè)置了SO_REUSEADDR選項。這樣在關(guān)閉套接字后,即使端口還在等待關(guān)閉狀態(tài),也可以立即重新綁定到該端口上。