发送广播消息

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/wait.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include <errno.h> int main(void)
{
char rgMessage[] = "I am sending message to you!";
int iFd;
int iSendbytes;
int iOptval = ;
struct sockaddr_in Addr;
if ((iFd = socket(AF_INET, SOCK_DGRAM, )) == -)
{
printf("socket fail\n");
return -;
} if (setsockopt(iFd, SOL_SOCKET, SO_BROADCAST | SO_REUSEADDR, &iOptval, sizeof(int)) < )
{
printf("setsockopt failed!");
}
memset(&Addr, , sizeof(struct sockaddr_in));
Addr.sin_family = AF_INET;
Addr.sin_addr.s_addr = inet_addr("255.255.255.255");
Addr.sin_port = htons(); while ()
{
if ((iSendbytes = sendto(iFd, rgMessage, strlen(rgMessage), , (struct sockaddr*)&Addr, sizeof(struct sockaddr))) == -)
{
printf("sendto fail, errno=%d\n", errno);
return -;
}
printf("rgMessage=%s, rgMessageLen=%d,iSendbytes=%d\n", rgMessage, strlen(rgMessage), iSendbytes);
sleep();
}
close(iFd); return ;
}

接收广播消息

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h> int main(void) { int iAddrLength;
char rgMessage[];
int iOptval = ;
int iFd;
struct sockaddr_in Addr; if ((iFd = socket(AF_INET, SOCK_DGRAM, )) == -)
{
printf("socket fail\n");
return -;
} if (setsockopt(iFd, SOL_SOCKET, SO_REUSEADDR, &iOptval, sizeof(int)) < )
{
printf("setsockopt failed!\n");
}
memset(&Addr, , sizeof(struct sockaddr_in));
Addr.sin_family = AF_INET;
Addr.sin_addr.s_addr = INADDR_ANY;
Addr.sin_port = htons();
iAddrLength = sizeof(Addr); if (bind(iFd, (struct sockaddr *)&Addr, sizeof(Addr)) == -)
{
printf("bind failed!\n");
} while ()
{
if (recvfrom(iFd, rgMessage, sizeof(rgMessage), , (struct sockaddr *)&Addr, &iAddrLength) == -)
{
printf("recv failed!\n");
}
printf("recv:%s\n", rgMessage);
} close(iFd); return ;
}

Linux下UDP收/发广播消息简单实现的更多相关文章

  1. 基于libuv库的UDP收/发广播消息代码实现

    uv_send(发送端): #include "uv.h" #include "task.h" #include <stdio.h> #includ ...

  2. UDP收/发广播包原理及步骤

    原文链接地址:http://www.2cto.com/net/201311/254834.html UDP收/发广播包原理及步骤 如果网络中两个主机上的应用程序要相互通信,其一要知道彼此的IP,其二要 ...

  3. UDP 收/发 广播包

    网络通信基础 如果网络中两个主机上的应用程序要相互通信,其一要知道彼此的IP,其二要知道程序可监听的端口.因为同一主机上的程序使用网络是通过端口号来区分的. UDP Socket的使用过程: 1. 初 ...

  4. Linux下UDP简介及程序设计

    一.UDP简介 UDP(User Datagram Protocol),用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务.UDP提供了无连接通信,且不对传 ...

  5. 在Linux下如何使用GCC编译程序、简单生成 静态库及动态库

      最近在编写的一个Apache  kafka 的C/C++客户端,,在看他写的 example中,他的编译是用librdkafka++.a和librdkafka.a    静态库编译的,,,而我们这 ...

  6. linux下堆溢出unlink的一个简单例子及利用

    最近认真学习了下linux下堆的管理及堆溢出利用,做下笔记:作者作为初学者,如果有什么写的不对的地方而您又碰巧看到,欢迎指正. 本文用到的例子下载链接https://github.com/ctfs/w ...

  7. Linux下UDP发送大量请求导致Operation not permitted的问题探讨

    一.问题背景目前公司准备上微服务的架构模式,在对比大量的API网关之后,最后选中了Kong作为我们的API网关,在经过大量的研究之后,啊呸,踩坑之后,终于跑起来了,简直是普天同庆,撒花祝贺. 但是在美 ...

  8. 【转】 linux下配置squid 服务器,最简单使用方式

    linux下配置squid 1.什么是squid Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器.Squid有广泛的用途,从作为网 ...

  9. Linux下UDP一发一收通信

    实现在Linux环境下的UDP通信测试. 注释了while循环,将代码规范化. udpserver.c代码: /******************************************** ...

随机推荐

  1. LVS+DR源码安装

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. iOS利用视频做起始页

    一个好的引导页会使得用户体验大大提升,利用视频来做,可以更简单的达到优雅的效果.使用MediaPlayer.framework框架下的AVPlayerLayer,它和Core Animation紧密地 ...

  3. Android 读取SIM卡参数

    package com.water.activity; import java.util.List; import android.app.Activity; import android.os.Bu ...

  4. 【BZOJ2318】【spoj4060】game with probability Problem 概率DP

    链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...

  5. wordpress迁移

    从一个地方搬到另一个窝,我必定会带着我的Wordpress,这就涉及到博客的迁移了.首先申明,该文非原创,放在这里主要是为了方便自己日后再次需要转移博客时,能很快锁定文章目标. 这篇文章主要介绍怎样将 ...

  6. Logistic Regression and Classification

    分类(Classification)与回归都属于监督学习,两者的唯一区别在于,前者要预测的输出变量\(y\)只能取离散值,而后者的输出变量是连续的.这些离散的输出变量在分类问题中通常称之为标签(Lab ...

  7. 用antlr文法编写的hermit swrl规则(分享)

    /* * To change this license header, choose License Headers in Project Properties. * To change this t ...

  8. 优化sql,返回行数少情况下,NL比hash快好多

    sql如下 select t.id, t.value, tt.sort as sortno from ENGINEERING_TYPE t left join ENGINEERING_TYPE tt ...

  9. Android NDK调试方式之一: adb logcat

    查看程序执行过程中所打印的log信息,用于辅助调试排除代码错误. 一.采用NDK安装包下Samples/hello-jni工程做实验 1)修改jni/hello-jni.c文件 #include &l ...

  10. WebService地址变成计算机名的解决办法

    WCF 4.0 has solved this issue in some instances with a new config option that use Request Headers: & ...