getsockopt函数的使用
生活随笔
收集整理的這篇文章主要介紹了
getsockopt函数的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數原型為:
#include <netinet/socket.h>
int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
Return: 0 if OK, –1 on error
這個函數用于獲得socket的各種特性,即socket options. 結果放在函數的后兩個參數中,這兩個參數是value-result。
sockfd 是所要查看的socket的file descriptor
level 和 optname 在Figure 7.1 中(Unix Network Programming, P.193)
optval,getsockopt() 函數把所得到的socket option的值放到這個參數之中。它的數據類型要和Figure 7.1中的Datatype一致。
optlen 作為參數是表示optval 的大小。作為結果是表示返回的 optval 的大小。
#include "unp.h"
#include <netinet/tcp.h>
int main(int argc, char **argv)
{
int fd, val;
socklen_t len;
char strres[128];
len = sizeof(val);
fd = Socket(AF_INET, SOCK_STREAM, 0);
if(getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) == -1)
{
err_ret("getsockopt error");
}
else
{
if(len != sizeof(int))
snprintf(strres, sizeof(strres), "sizeof (%d) not sizeof(int)", len);
else
snprintf(strres, sizeof(strres), "%d", val);
printf("default = %s\n", strres);
}
close(fd);
exit(0);
}
這里是查看receive buffer的大小。
總結
以上是生活随笔為你收集整理的getsockopt函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快捷键汇总
- 下一篇: 实验八——函数定义及调用总结