📄 broad_client.c
字号:
/*************
// name : broad_client.c
// author : pyy
// date : 2007-11-26
************/
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
//#include<errno.h>
#include<string.h>
#include<time.h>
#include<signal.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<netdb.h>
int main()
{
struct sockaddr_in sv_addr;
int sockfd;
char buf[1024];
static int so_reuseaddr = 1;
int z;
/* 建立IPv4 地址,注意IP地址为广播地址 */
bzero(&sv_addr, sizeof(sv_addr));
sv_addr.sin_family = AF_INET;
sv_addr.sin_addr.s_addr = inet_addr("192.168.1.255");
/* 建立socket */
sockfd = socket();
if(sockfd == -1)
{ perror("socket error"); exit(1);}
/* 设置socket,让主机不同进程可以重新使用相同的IP地址及port */
z = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR,
&so_reuseaddr, sizeof(so_reuseaddr));
if(z ==-1)
{ perror("setsockopt error"); exit(1);}
/* 绑定socket*/
z = bind(sockfd , (struct sockaddr *)&sv_addr, sizeof(sv_addr));
if(z == -1)
{
perror("bind error"); exit(1);
}
while(1)
{
int i;
socklen_t j;
/*接收来自server 的信息*/
i = recvfrom(sockfd, buf, sizeof(buf), 0,
(struct sockaddr *)&sv_addr, &j);
if (i<0)
{
perror("recvfrom error"); exit(1);
}
buf[i] =0;
/* 若收到 stop字符串,结束与server 的选择 */
if(!strcasecmp(buf, "stop")) break;
/* 将收到的信息显示出来*/
printf("广播信息为 %s\n",buf);
}
close(sockfd);
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -