套接字选项&UDP广播
来源:互联网 发布:学计算机编程需要多久 编辑:程序博客网 时间:2024/06/06 20:43
Leve(级别)
optname(选项名)
get
Set
说明
标志
数据类型
SOL_SOCKET
SO_BROADCAST
·
·
允许发送广播数据报
·
int
SO_DEBUG
·
·
开启调试跟踪
·
int
SO_DONTROUTE
·
·
绕过外出路由表查询
·
int
SO_ERROR
·
获取待处理错误并清除
int
SO_KEEPALIVE
·
·
周期性测试连接是否仍存活
·
int
SO_LINGER
·
·
若有数据待发送则延迟关闭
linger
SO_OOBINLINE
·
·
让接收到的带外数据继续在线留存
·
int
SO_RCVBUF
·
·
接收缓冲区大小
int
SO_SNDBUF
·
·
发送缓冲区大小
int
SO_RCVLOWAT
·
·
接收缓冲区低水位标记
int
SO_SNDLOWAT
·
·
发送缓冲区低水位标记
int
SO_RCVTIMEO
·
·
接收超时
timeval{}
SO_SNDTIMEO
·
·
发送超时
timeval{}
SO_REUSEADDR
·
·
允许重用本地地址
·
int
SO_REUSEPORT
·
·
允许重用本地端口
·
int
SO_TYPE
·
取得套接字类型
int
SO_USELOOPBACK
·
·
路由套接字取得所发送数据的副本
·
int
IPPROTO_IP
IP_HDRINCL
·
·
随数据包含的IP首部
·
int
IP_OPTIONS
·
·
IP首部选项
int
IP_RECVDSTADDR
·
·
返回目的IP地址
·
int
IP_RECVIF
·
·
返回接收接口索引
·
int
IP_TOS
·
·
服务类型和优先权
int
IP_TTL
·
·
存活时间
int
IP_MULTICAST_IF
·
·
指定外出接口
in_addr{}
IP_MULTICAST_TTL
·
·
指定外出TTL
u-char
IP_MULTICAST_LOOP
·
·
指定是否环回
u_char
IP_ADD_MEMBERSHIP
·
加入多播组
ip_mreq{}
IP_DROP_MEMBERSHIP
·
离开多播组
ip_mreq{}
IP_BLOCK_SOURCE
·
阻塞多组播
ip_mresource{}
IP_UNBLOCK_SOURCE
·
开通多组播
ip_mresource{}
IP_ADD_SOURCE_MEMBERSHIP
·
加入源特定多组播
ip_mresource{}
IP_DROP_SOURCE_MEMBERSHIP
·
离开源特定多组播
ip_mresource{}
IPPROTO_ICMPV6
ICMP6_FILTIER
·
·
指定待传递的ICMPv6
icmp6_filter{}
IPPROTO_IPV6
IPV6_CHECKSUM
·
·
用于原始套接字的校验和字段偏移
int
IPV6_DONTFRAG
·
·
丢弃大的分组而将其分片
·
int
IPV6_NEXTHOP
·
·
指定下一跳地址
sockaddr_int6{}
IPV6_PATHMTU
·
获取当前路径MTU
ip6_mtuinfo{}_
IPV6_RECVDSTOPTS
·
·
接收目的地选项
·
int
IPV6_RECVHOPLIMIT
·
·
接收单播跳限
·
int
IPV6_RECVHOPOPTS
·
·
接收步跳选项
·
int
IPV6_RECVPATHMTU
·
·
接收路径MTU
·
int
IPV6_RECVPKTINFO
·
·
接收分组信息
·
int
IPV6_CVRTHDR
·
·
接收源路径
·
int
IPV6_RECVTCLASS
·
·
接收流通类型
·
int
IPV6_UNICAST_HOPS
·
·
默认单播跳限
int
IPV6_USE_MIN_MTU
·
·
使用最小MTU
·
int
IPV6_V6ONLY
·
·
禁止v4兼容
·
int
IPV6_XXX
·
·
粘附性辅助数据
int
IPV6_ULTICAST_IF
·
·
指定外出接口
u_int
IPV6_MULTICAST_HOPS
·
·
指定外出跳限
int
IPV6_MULTICAST_LOOP
·
·
指定是否环回
·
u_nt
IPV6_JOIN_GROUP
·
加入多组播
ip6_mreq{}
IPV6_LEAVE_GROUP
·
离开多组播
ip6_mreq{}
IPPROTO_IP 或PROTO_IPV6
MCAST_JOIN_IF
·
加入多组播
group_req{}
MCAST_LEAVE_GROUP
·
离开多组播
group_source_req{}
MCAST_BLOCK_SOURCE
·
阻塞多播源
group_source_req{}
MCAST_UNBLOCK_SOURCE
·
开通多播源
group_source_req{}
MCAST_JOIN_SOURCE_GROUP
·
加入源特定多播组
group_source_req{}
MCAST_LEAVE_SOURCE_GROUP
·
离开源特定多播组
group_source_req{}
IPPROTO_TCP
TCP_MAXSEG
·
·
TCP最大分节大小
int
TCP_NODELAY
·
·
禁止Nagle算法
·
int
IPPROTO_SCTP
SCTP_ADAPTION_LAYER
·
·
适配层指示
sctp_setadaption{}
SCTP_ASSOCINFO
·
检查并设置关联信息
sctp_assocparams{}
SCTP_AUTOCLOSE
·
·
自动关闭操作
int
SCTP_DEFAULT_SEND_PARAM
·
·
默认发送参数
sctp_sndrcvinfo{}
SCTP_DISABLE_FRAGMENTS
·
·
SCTP分片
·
int
SCTP_EVENTS
·
·
感兴趣事件的通知
sctp_event_subscribe{}
SCTP_GET_PEER_ADDR_INFO
获取对端地址状态
sctp_paddrinfo
SCTP_I_WANT_MAPPED_V4_ADDR
·
·
映射的v4地址
·
int
SCTP_INITMSG
·
·
默认的INIT参数
sctp_initmsg{}
SCTP_MAXBURST
·
·
最大猝发大小
int
SCTP_MAXSEG
·
·
最大分片大小
int
SCTP_NODELAY
·
·
禁止Nagle算法
·
int
SCTO_PEER_ADDR_PARAMS
·
对端地址参数
sctp_paddrparams{}
SCTP_PRIMARY_ADDR
·
主目的地址
sctp_setprim{}
SCTP_PTOINFO
·
RTO信息
sctp_rtoinfo{}
SCTP_SET_PEER_PRIMARY_ADDR
·
对端的主目的地址
sctp_setpeerprim{}
SCTP_STATUS
获取关联状态
sctp_status{}
#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <string.h>#include <stdlib.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <stdio.h>int main(int argv,char **argc){//1.创建socket int sockfd=socket(AF_INET,SOCK_DGRAM,0); if(sockfd<0) {perror("create sock fail\n"); } //设置接收端的信息 struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(atoi(argc[1])); //接收端的端口号 addr.sin_addr.s_addr = inet_addr("192.168.7.255"); //发送广播数据到7段的IP里面 int ret=0; //设置广播属性 int on=1; //使能标记位 1 开启 0关闭 ret = setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(on)); if(ret<0) { perror("setsocketopt fail"); } else { printf("set sock ok\n"); } char buf[50]={"aaaaaaaa date"};int ret1 = 0; //发送UDP数据包 while(1) {ret1=sendto(sockfd,buf,strlen(buf),0,(struct sockaddr *)&addr,sizeof(addr)); if(ret1>0) {printf("buf=%s\tsize=%d\n",buf,ret1); } sleep(1); } close(sockfd); }
- 套接字选项&UDP广播
- 使用UDP套接字实现广播消息
- UDP套接字
- UDP套接字
- UDP套接字编程
- 6、UDP套接字
- UDP协议/套接字
- UDP套接字
- UDP套接字编程
- 理解UDP套接字
- UDP套接字编程
- 2.3 UDP套接字
- UDP套接字编程
- UDP套接字基础
- linux Udp 套接字
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- Project ERROR: Unknown module(s) in QT: multimedia
- bash
- 指针、数组与sizeof运算符
- C++面向对象的三大特征——多态(动态多态)
- 问题 V: A除以B
- 套接字选项&UDP广播
- 页面规范
- hadoop启动时,报ssh: Could not resolve hostname xxx: Name or service not known
- 问题 W: 锤子剪刀布
- POJ1419:Graph Coloring(图的最大独立集)
- 认真学习php面向对象-3
- 【Java学习笔记】26:打印流&数据流
- ViewPager加载不出View的解决方法
- Integer.parseInt("") Integer.valueOf("")和new Integer("")之间的区别