相关疑难解决方法(0)

CAP_NET_RAW为什么不能与SO_BINDTODEVICE一起使用?

我有以下简单的测试程序来创建一个UDP套接字并将其绑定到一个特定的接口,SO_BINDTODEVICE这样我就可以bind()这么INADDR_ANY来收到UDP该接口上专门播放。

//filename: bindtest.c
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>

#define MY_PORT (333)
#define MY_DEVICE "enp0s3"

#define BUFFERSIZE (1000)

/* global variables */
int sock;
struct sockaddr_in sa;
struct sockaddr_in my_addr;
char buffer[BUFFERSIZE];

int main(int argc, char *argv[])
{
  unsigned int echolen, clientlen;
  int rc, n;
  char opt_buffer[1000];
  struct protoent *udp_protoent;
  struct timeval receive_timeout;
  int optval;
  socklen_t opt_length;
  sleep(1);
  /* Create the UDP socket */
  if ((sock …
Run Code Online (Sandbox Code Playgroud)

sockets linux linux-capabilities

3
推荐指数
1
解决办法
929
查看次数

标签 统计

linux ×1

linux-capabilities ×1

sockets ×1