
//在指定的IP和端口上接收多播组的报文
int recv_msg(char *ip , unsigned short port , char *mult_ip )
{
//建立通讯套接字
int fd = socket( PF_INET , SOCK_DGRAM , 0 )
if( -1 == fd )
{
perror("socket failed")
return -1
}
//设置地址重用和接收多播
{
int reuse = 1
struct ip_mreqn mult_addr = {0}
mult_addr.imr_multiaddr.s_addr = inet_addr( mult_ip )
mult_addr.imr_address.s_addr = inet_addr( ip )
if( -1 == setsockopt( fd , IPPROTO_IP , IP_ADD_MEMBERSHIP ,
&mult_addr , sizeof(mult_addr)))
{
perror("setsockopt add failed")
goto _out
}
if( -1 == setsockopt( fd , SOL_SOCKET, SO_REUSEADDR,
&reuse , sizeof(reuse) ) )
{
perror("setsockopt reuse failed")
}
}
//绑定地址和端口
{
struct sockaddr_in addr = {0}
addr.sin_family = PF_INET
addr.sin_port = htons( port )
addr.sin_addr.s_addr = INADDR_ANY
if( -1 == bind( fd , (struct sockaddr*)&addr ,
sizeof(addr) ) )
{
perror("bind failed")
goto _out
}
}
//接收信息
while(1)
{
char buf[128] = {0}
int ret = 0
struct sockaddr_in client_addr = {0}
int len = sizeof(client_addr)
ret = recvfrom( fd , buf , sizeof(buf), 0 ,
(struct sockaddr*)&client_addr ,
&len )
//被信号中断则重启
if( (-1 == ret)&&(EINTR ==errno ))
{
continue
}
else if( -1 ==ret )
{
perror("recvfrom failed")
goto _out
}
else if( ret >0 )
{
printf("%s\n" , buf )
}
usleep( 100*1000 )
}
_out:
if( fd >= 0)
{
close( fd )
}
return 0
}
在kaliLinux下配置pppoe,一般有以下步骤:1.安装pppoe软件。ape-getinstallpppoe即可。2.设置拨号属性:到了这一步,如果没有问题的话,应该就可以正常连上pppoe服务器了。
最近项目接触到Openwrt的编译和使用,op本身是一个定制的linux系统,兼容的包和语言也有很多,随着物联网的发展,相信在路由器方面的应用会越来越多。
涉及到网关multiwan的多线多播、 负载均衡,所以使用 openwrt的 mwan3 package
openwrt-mwan3官方说明
3.查看status
能看到 双网口的的负载百分比和设置的rule规则
luci也提供了图形界面修改和查看状态的功能
具体步骤 参考
使用MWAN3进行多线叠加详细教程
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)