linux系统下怎么连接网络

linux系统下怎么连接网络,第1张

linux系统下连网络, *** 作步骤如下:

1、首先用root用户登录linux桌面系统。

2、然后点击上方的【系统】, 在下拉菜单中点击【首选项】。

3、然后点击列表里的【网络连接】。

4、然后点击“编辑”。打开“IPV4 设置”页面,选择“方法”为“手动”。

5、选择“添加”。填写自己分配的ip地址,子网掩码,网关,DNS服务器等信息,参照windows 系统填写。填写完成后,点击“应用”即可。

socket创建UDP通信描述符后,setsockopt加入多播组,再bind绑定到该网卡上

//在指定的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

}

因为一个系统只允许一个默认网关,所以你的双网卡配置文件,只有一个进行配置,另一个注释掉,以软路由的方式实现双网卡网络通信正常。 *** 作如下:

1、内网卡的IP配置文件正常配置;

2、外网卡的IP配置文件网关位置去掉;

3、启动2个网卡;

4、执行路由命令添加软路由显示外网只允许指定网段通信使用外网,命令如下:

route  add -net 网段 netmask 掩码 gw 外网网关

以上请使用对应IP替换网段,掩码,外网网关


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7587672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存