Linux-TCP/UDP程序

1 篇文章 0 订阅
1 篇文章 0 订阅

程序设计

TCP
服务器端监听0.0.0.0以获取所有网卡(主机所有IP地址)收到的请求
在这里插入图片描述

netstat -aptn#查看主机端口

socket底层有缓冲区,就算程序阻塞也能暂存收到的数据
代替客户端发起tcp连接
在这里插入图片描述
在这里插入图片描述
UDP
用sendto和recvfrom方法通信
因为端口只能绑定一次,所以服务端需要bind,以防和本地客户端冲突
查看运行的端口
在这里插入图片描述
UDP高级应用

  • UDP广播数据包
    广播只能在一个广播域(局域网)中传播,而不能跨网段传播
    ARP协议,做MAC发现
    vlan,实现局域网逻辑隔离
  • 组播数据包
    能够在组播组中进行传播的,并且路由器可以进行组播数据转发
    修改套接口选项,实现广播
    如果没有设置BLOADCASE选项的不递送。
    如果bind端口不匹配不递送该套接口
    如果绑定的不是INADDR_ANY话,那么BIND的地址和目的地址匹配才能递送:也就是说你必须BIND一个广播地址或者绑定INADDR_ANY
    用ifconfig命令可以disable块网卡的BROADCAST标志,让其不能接受以太网广播。
    也可以使用ioctl的SIOCSIFFLAGS方法去掉一个接口的标志IFF_BROADCAST,使之不能接受以太网广播。
    在这里插入图片描述
    linux抓包工具
    如何识别广播包
    MAC:FF:FF:FF:FF:FF:FF
    IP:10.0.0.0/8 —>10.255.255.255
    192.168.199.1---->192.168.199.255
    在这里插入图片描述
    组播
    IP层实现远程通信,组播需要指定组的IP(也可以是域名),本机IP
    bind组播地址
    224.0.0.1—239.255.255.255
    组播IP和局域网IP差不多,可以复用,是虚拟形式上的IP
    将当前UDPsocket加入组在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值