socket 通讯的概念性过程

1.SOCKET 通讯TCP方式一般流程图

服务端                                                                             客户端
socket()                                                                           socket()             
       |                                                                                       |
       |-------------------------setsockopt()-----------------------|
       |                                                                                       |
   bind()                                                                             connect()
       |                                                                                       |
       |                                                                                       |
   listen()                                                                           recv()/send()/write()
       |
       |
  accept()
       |
       |
       |
recv()/send()/read()
setsockopt的可用level为SOL_SOCKET:
option为:SO_REUSEADDR  选项就是可以实现端口重绑定的
 其他的选项可以使用也可以不用.

2.SOCKET 通讯UDP方式一般流程图

服务端                                                                             客户端
socket()                                                                           socket()             
       |                                                                                       |
       |-------------------------setsockopt()---------------------- |
       |                                                                                       |
   bind()                                                                          sendto()
       |                                                                                       
       |                                                                                     
recvfrom()
  如果是广播,则
 setsockopt的可用level为SOL_SOCKET:
option为:SO_BROADCAST  选项就是该SOCKET 是用于广播的.
 sendto地址可以为:255.255.255.255 受限地址
                                netid.255.255  (B类地址)该网络号下所有子网
                                10.128.1.255 (B类地址)该1子网的广播
                                10.128.255.255 (B类地址)所有子网的广播

如果是多播,则
 setsockopt的可用level为IPPROTO_IP:
  1. IP_ADD_MEMBERSHIP: 加入一个多播组
  2. IP_DROP_MEMBERSHIP: 离开一个多播组
  3. IP_MULTICAST_IF: 指定外出多播数据报的外出接口
  4. IP_MULTICAST_TTL: TTL数
  5. IP_MULTICAST_LOOP: 是否禁止回馈,我的理解是一台机器是否可以接收到自己发送的多播数据报
    struct ip_mreq 为IP_ADD_MEMBERSHIP的数据结构!

   多播地址为224.0.0.0.1~239.255.255.255

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值