VxWorks多网卡发送

新手上路,请多包涵

VxWorks下,系统下有两个网卡,在两个网络中使用同一个地址,那么在发送udp报文的时候,如何指定使用哪一个网卡?

阅读 1.8k
1 个回答
int sockfd;
struct sockaddr_in servaddr, localaddr;
char *local_ip = "192.168.1.100"; // 你用网络接口的IP地址

sockfd = socket(AF_INET, SOCK_DGRAM, 0);

bzero(&localaddr, sizeof(localaddr));
localaddr.sin_family = AF_INET;
localaddr.sin_addr.s_addr = inet_addr(local_ip);
localaddr.sin_port = htons(0); // 用任意端口

if (bind(sockfd, (struct sockaddr *)&localaddr, sizeof(localaddr)) < 0) {
    perror("bind failed");
    close(sockfd);
    return -1;
}

bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(12345);

sendto(sockfd, "hello", 5, 0, (struct sockaddr *)&servaddr, sizeof(servaddr));

close(sockfd);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进