发送端:

   1:  /*
   2:   * =====================================================================================
   3:   *
   4:   *       Filename:  client.c
   5:   *
   6:   *    Description:  
   7:   *
   8:   *        Version:  1.0
   9:   *        Created:  03/14/2013 01:48:12 PM
  10:   *       Revision:  none
  11:   *       Compiler:  gcc
  12:   *
  13:   *         Author:  YOUR NAME (), 
  14:   *        Company:  
  15:   *
  16:   * =====================================================================================
  17:   */
  18:   
  19:  #include <stdio.h>
  20:  #include <sys/socket.h>
  21:  #include <netinet/in.h>
  22:  #include <arpa/inet.h>
  23:  #include <stdlib.h>
  24:  #include <strings.h>
  25:  #include <string.h>
  26:  #include <unistd.h>
  27:   
  28:  #define N 256
  29:   
  30:  typedef struct sockaddr SA;
  31:   
  32:  int main(int argc, char *argv[])
  33:  {
  34:   
  35:      int sockfd;
  36:      int on = 1;
  37:      socklen_t optlen = sizeof(on);
  38:      struct sockaddr_in broad_addr;
  39:      char buffer[N] = {"pengdonglin"};
  40:   
  41:   
  42:      if(argc < 3)
  43:      {
  44:          printf("usage: %s <ip> <port>\n",argv[0]);
  45:          exit(-1);
  46:      }
  47:      if((sockfd = socket(PF_INET, SOCK_DGRAM, 0) ) < 0)
  48:      {
  49:          perror("fail to socket");
  50:          exit(-1);
  51:      }
  52:      
  53:      if(setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &on, optlen) < 0)
  54:      {
  55:          perror("fail to getsockopt");
  56:          exit(-1);
  57:      }
  58:   
  59:      bzero(&broad_addr, sizeof(struct sockaddr_in));
  60:   
  61:      broad_addr.sin_family = PF_INET;
  62:      broad_addr.sin_port = htons(atoi(argv[2]));
  63:      broad_addr.sin_addr.s_addr = inet_addr(argv[1]);
  64:   
  65:      while(1)
  66:      {
  67:          sendto(sockfd,buffer, N, 0, (SA *)&broad_addr, sizeof(broad_addr)); 
  68:          sleep(1);
  69:      }
  70:   
  71:      return 0;
  72:  }

接收:

   1:  /*
   2:   * =====================================================================================
   3:   *
   4:   *       Filename:  client.c
   5:   *
   6:   *    Description:  
   7:   *
   8:   *        Version:  1.0
   9:   *        Created:  03/14/2013 01:48:12 PM
  10:   *       Revision:  none
  11:   *       Compiler:  gcc
  12:   *
  13:   *         Author:  YOUR NAME (), 
  14:   *        Company:  
  15:   *
  16:   * =====================================================================================
  17:   */
  18:   
  19:  #include <stdio.h>
  20:  #include <sys/socket.h>
  21:  #include <netinet/in.h>
  22:  #include <arpa/inet.h>
  23:  #include <stdlib.h>
  24:  #include <strings.h>
  25:  #include <string.h>
  26:  #include <unistd.h>
  27:   
  28:  #define N 256
  29:   
  30:  typedef struct sockaddr SA;
  31:   
  32:  int main(int argc, char *argv[])
  33:  {
  34:   
  35:      int sockfd;
  36:      struct sockaddr_in broad_addr, peeraddr;
  37:      socklen_t peerlen = sizeof(peeraddr);
  38:      char buffer[N];
  39:   
  40:      if(argc < 3)
  41:      {
  42:          printf("usage: %s <ip> <port>\n",argv[0]);
  43:          exit(-1);
  44:      }
  45:   
  46:      if((sockfd = socket(PF_INET, SOCK_DGRAM, 0) ) < 0)
  47:      {
  48:          perror("fail to socket");
  49:          exit(-1);
  50:      }
  51:      
  52:   
  53:      bzero(&broad_addr, sizeof(struct sockaddr_in));
  54:   
  55:      broad_addr.sin_family = PF_INET;
  56:      broad_addr.sin_port = htons(atoi(argv[2]));
  57:      broad_addr.sin_addr.s_addr = inet_addr(argv[1]);
  58:   
  59:      if(bind(sockfd, (SA *)&broad_addr, sizeof(broad_addr)) < 0)
  60:      {
  61:          perror("fail to bind");
  62:          exit(-1);
  63:      }
  64:      while(1)
  65:      {
  66:          recvfrom(sockfd, buffer, N, 0, (SA *)&peeraddr, &peerlen); 
  67:   
  68:          printf("%s : %d  : %s\n", inet_ntoa(peeraddr.sin_addr), ntohs(peeraddr.sin_port),buffer);
  69:      }
  70:   
  71:      return 0;
  72:  }

运行:

发送端:

接收端:

接收端或者绑定的ip设为0

转载于:https://www.cnblogs.com/pengdonglin137/archive/2013/03/16/2963464.html

TCP/IP 广播的发送和接收相关推荐

  1. Udp广播的发送和接收(iOS + AsyncUdpSocket)下篇

    接上篇C#的Udp广播的发送和接收 http://www.cnblogs.com/JimmyBright/p/4637090.html ios中使用AsyncUdpSocket处理Udp的消息非常方便 ...

  2. TCP/IP 与 DBUS 发送数据速度对比 进程间通信

    图片为测试每次发送长度 1024*1024 Byte数据的延时,每次间隔20毫秒,同一台电脑,WIN10系统,32G内存,24核心; 测试代码用QT自带例子修改. 结果: TCP/IP 延时30毫秒左 ...

  3. 硬件 TCP/IP 协议栈(SPI 发送命令字)

    目录 全硬件的TCP/IP 协议栈简介 以太网接入单片机方案 以太网接口芯片CH395Q 简介 以太网接口芯片 CH395Q 命令简介 以太网接口芯片CH395Q 寄存器配置与使用 移植CH395Q ...

  4. UDP广播包发送与接收

    1.数据发送端 #include "stdafx.h" #include <WinSock2.h> #include <stdio.h> #include ...

  5. linux TCP/IP L2层数据包接收流程,eth_rxnetif_receive_skb处理流程

    linux TCP/IP L2 handle 流程, 基于Linux kernel3.14.

  6. Android源码分析之广播的发送和接收流程

    说明:本文是基于Android6.0源码来分析的 概要 我的理解是,Android中的广播可以看为一种消息机制,用来在一定的条件下触发一些操纵,比如:网络状态的改变,熄屏,亮屏等等Android系统都 ...

  7. TCP/IP——广播和多播(组播)

    一.引言 三种IP地址:单播地址.广播地址和组播地址.广播和多播仅应用于UDP(因为TCP是端对端的连接,无法实现一对多). 单播,一对一,目的地址是单个主机: 广播,一对全部,目的地址是局域网中的全 ...

  8. 服务器java 客户端c_Java客户端和C ++服务器通过TCP套接字发送和接收

    我有一个C ++服务器和两个客户端(红宝石和Java).一切都在64位linux机器(java 1.7.0_17)上运行.ruby客户端可以正常工作,但是java版本会出现问题. 在Java中,我尝试 ...

  9. python写一个app接收摄像头传输的视频_如何使用Python中的tcp套接字发送和接收网络摄像头流?...

    我正在尝试重新创建this project.我有一台服务器(我的电脑)和一台客户机(我的树莓皮).我所做的与最初的项目不同的是,我尝试使用一个简单的网络摄像头而不是一个覆盆子pi相机将图像从我的rpi ...

最新文章

  1. android 照片拼接长图_我才发现,微信里面有一个功能,能将手机照片自动拼成长图...
  2. pandas内置绘图_使用Pandas内置功能探索数据集
  3. c++判断字符是否为空格或数字
  4. mysql 两张表差集_mysql中两张表使用left join on 求差集详解
  5. mysql 最短路经_poj 3613 Cow Relays 经L边的最短路 | 学步园
  6. 【PHP源码】二维码生成api
  7. 显式锁(二)Lock接口与显示锁介绍
  8. 作为 Web 开发人员我踩过哪些技术的坑?
  9. USER_AGENT 知识
  10. 云原生技术的挑战是什么?
  11. MultiRow发现之旅(五)- MultiRow版俄罗斯方块(exe + 源码)
  12. android 自定义相机,Android应用开发之android 7自定义相机预览及拍照功能
  13. 恒生校招java笔试数据库语法_2015恒生电子校招笔试题
  14. Atiitt 知识图谱的艺术 艾提拉著 目录 1. 常见知识图谱的处理技术 1 2. 常用的公开知识图谱如DBpedia, Freebase, Yago,Openkg等 2 3. 构建知识图谱的方
  15. JS中变量存储在堆中还是栈中?(深入内存原理)
  16. 媒体领域AI能力测评,黑白图像上色、一键微笑哪家强
  17. 202个DIY及科技网站大集合
  18. 手机拨出等待时间长_手机打不出去电话怎么回事 一分钟轻松排查原因
  19. uniapp 判断手机网络状态
  20. 自动驾驶的前世今生,能否直破未来潮流

热门文章

  1. 你连原理都还没弄明白?java的基本单位
  2. 【深度学习入门到精通系列】进化策略 (Evolution Strategy)
  3. python【蓝桥杯vip练习题库】ADV-306输出三个整数的最大数
  4. ubuntu创建新用户名和密码以及查看删除用户
  5. 【深度学习笔记】ROC曲线 vs Precision-Recall曲线
  6. bindservice启动服务
  7. 算法训练 连续正整数的和 (枚举)
  8. arc0 oracle,ORA-01194错误恢复方法一
  9. 进阶学习(4.2) JVM 常用配置参数, GC 参数
  10. 网站优化过度后会出现哪些“后遗症”?悠着点~