#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
#define BUFLINE 256
int main(int argc, char *argv[]){
struct sockaddr_in local;
int fd, n;
struct ip_mreq mc;
char msg[BUFLINE + 1];
if(argc != 3){
printf("Usage: ip port\n");
return 1;
}
fd = socket(AF_INET, SOCK_DGRAM, 0);
if(fd == -1){
perror("socket()");
return 1;
}
memset(&local, 0, sizeof(local));
local.sin_port = htons(atoi(argv[2]));
local.sin_addr.s_addr = htonl(INADDR_ANY);
if(inet_pton(AF_INET, "192.168.30.61", &mc.imr_interface) <= 0){//my ip
perror("inet_pton");
return 1;
}
if(inet_pton(AF_INET, argv[1], &mc.imr_multiaddr) <= 0){//multi addr
perror("inet_pton()");
return 1;
}
printf("ip: %s\n", inet_ntoa(mc.imr_multiaddr));
fflush(stdout);
if(setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mc, sizeof(mc)) < 0){
perror("setsockopt");
return 1;
}
if(bind(fd, (struct sockaddr*)&local, sizeof(local)) == -1){
perror("bind");
return 1;
}
n = read(fd, msg, BUFLINE);
if(n < 0){
fprintf(stderr, "read");
return 1;
}else{
msg[n - 1] = 0;
printf("%s\n", msg);
}
return 0;
}
运行:./mclient 224.0.4.5 123
224.0.4.5是组播地址。
分享到:
相关推荐
在Linux网络编程中,单播、多播和广播是三种不同的通信模式,它们在不同的场景下各有优势。本文将详细讲解这三种模式的实现,并通过给出的实验代码进行解析。 首先,广播通信是指数据包被发送到同一网络段内的所有...
8、Linux网络编程08——多播 9、Linux网络编程09——TCP编程之客户端 10、Linux网络编程10——TCP编程之服务器 11、Linux网络编程11——tcp、udp迭代服务器 12、Linux网络编程12——tcp三次握手、四次挥手 13、Linux...
Linux网络编程是操作系统领域中的一个重要话题,特别是在服务器端软件开发中。这门技术涉及如何在Linux环境下编写程序,实现网络通信,包括TCP/IP协议栈、套接字编程、并发服务处理等多个方面。以下是对这个主题的...
《Linux网络编程》一书是Linux环境下学习网络编程的重要参考资料,尤其适合那些对Linux系统有浓厚兴趣并希望深入理解网络编程的读者。本书涵盖了Linux网络编程的基础知识、核心技术以及高级应用,旨在帮助读者掌握在...
### 传智Linux网络编程知识点概述 #### 一、网络编程基本概念 1. **协议的概念**:在计算机网络中,协议是指两台或多台计算机之间进行数据交换时所遵循的一套规则。从应用角度来看,协议可以理解为数据传输和解释的...
Linux网络编程是IT领域中的一个重要话题,特别是在服务器端开发、分布式系统和云计算环境中。这个主题主要涉及如何在Linux操作系统上利用TCP/IP协议栈进行网络应用的开发。标题提及的"Linux网络编程PPT和源码"是针对...
本资源提供了Linux网络编程中的广播代码示例和相应的文档说明,帮助开发者深入理解和实践广播通信。 首先,我们来了解一下Linux网络编程中的广播基础知识。在TCP/IP协议栈中,广播地址是一个特殊的IP地址,它的所有...
### 嵌入式Linux网络编程相关知识点 #### 1. TCP/IP协议概述 ##### 1.1 OSI参考模型及TCP/IP参考模型 OSI(Open Systems Interconnection Model)七层模型是由国际标准化组织(ISO)提出的理论模型,旨在定义不同...
根据提供的文件信息,这里将对"C++教程网《Linux网络编程》"的相关知识点进行详细的解析与阐述。 ### Linux网络编程概述 #### 一、课程简介 《Linux网络编程》是一套全面而系统的教学资源,共计41集视频教程。本...
在Linux网络编程中,`netstat`是一个常用工具,用于显示网络连接、路由表、接口统计、masquerade连接、多播成员等信息。通过选项`-an`可以查看详细的网络状态。此外,`telnet`作为一款远程登录工具,允许用户通过...
### 黑马_Linux网络编程-网络基础-socket编程-高并发服务器 #### 知识点概述 本篇文章旨在深入解读“黑马_Linux网络编程-网络基础-socket编程-高并发服务器”相关的核心概念和技术要点,包括网络基础知识、常用...
Linux网络设备驱动编程是内核编程领域中的一个重要分支,它涉及到内核模块的编写,主要负责与硬件设备进行通信。在Linux操作系统中,网络设备的驱动通常需要遵循一系列标准的编程接口和规范来实现。网络设备驱动程序...
网络基础协议的概念: 在计算机网络中,协议是一系列规则和约定的集合,用于控制网络中不同设备间的通信方式。...通过深入理解这些知识点,可以更好地掌握Linux网络编程,以及如何构建高并发服务器。
本文旨在为读者提供《嵌入式Linux网络编程》一书的概览,该书详细介绍了在Linux环境下TCP/UDP网络编程的相关知识。书中不仅深入解析了各个相关函数的内涵与应用,还通过实例演示,使读者能够深刻理解网络编程的趣味...
Linux网络编程是操作系统领域中的一个重要话题,特别是在服务器端软件开发中。这个实验旨在帮助学习者深入理解如何在Linux环境下编写网络应用程序。通过这份PPT,我们可以期待涵盖以下几个关键知识点: 1. **网络...
在IT领域,Linux系统和网络编程是两个至关重要的主题,对于任何希望深入计算机科学和软件开发的人员来说,它们都是必须掌握的基础技能。这个名为"Linux系统、网络编程学习源代码"的压缩包文件,显然是为了帮助初学者...
在IT行业中,网络编程是构建分布式系统的关键技术之一,而Qt框架为开发人员提供了一种高效、便捷的方式来处理网络通信。本教程将聚焦于Qt网络编程中的UDP(User Datagram Protocol)通信,涵盖单播、组播和广播三种...
在计算机网络领域,Linux网络编程涉及到了网络基础、协议、应用程序设计模式和网络模型等多个方面。本篇文章将详细阐述这些概念,帮助读者深入理解网络编程的基本原理。 1. **网络基础** - **协议**:协议是网络...