text 测试对SO_REUSEPORT的支持
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 测试对SO_REUSEPORT的支持相关的知识,希望对你有一定的参考价值。
// Simple program to test support of SO_REUSEPORT
// Adapted from https://blog.dubbelboer.com/2016/04/23/so-reuseport.html
#include <stdio.h>
#include <errno.h>
#include <sys/socket.h>
#include <unistd.h>
int main() {
#ifdef SO_REUSEPORT
int sock = socket(AF_INET, SOCK_STREAM, 0);
int reuse = 1;
int size = sizeof(reuse);
if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, (void*)&reuse, size) < 0) {
if (errno == EINVAL || errno == ENOPROTOOPT) {
printf("SO_REUSEPORT is not supported by your kernel\n");
} else {
printf("unknown error\n");
}
} else {
printf("SO_REUSEPORT is supported\n");
if (getsockopt(sock, SOL_SOCKET, SO_REUSEPORT, (void*)&reuse, &size) < 0) {
if(errno == ENOPROTOOPT) {
printf("failed getsockopt: protocol not supported\n");
} else {
printf("unknown error\n");
}
} else {
printf("getsockopt works: %d", reuse);
}
}
close(sock);
#else
printf("SO_REUSEPORT is not supported by your include files\n");
#endif
return 0;
}
SO_REUSEPORT is supported
failed getsockopt: protocol not supported
以上是关于text 测试对SO_REUSEPORT的支持的主要内容,如果未能解决你的问题,请参考以下文章
可以在Unix域套接字上使用SO_REUSEPORT吗?
SO_REUSEADDR & SO_REUSEPORT
SO_REUSEADDR & SO_REUSEPORT
setsockopt() 的 macOS SO_REUSEPORT
Linux TCP套接字选项 之 SO_REUSEADDR && SO_REUSEPORT
剖析 TCP - SO_REUSEPORT 使用