日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sock使用UDP协议进行广播发送数据

發(fā)布時間:2025/3/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sock使用UDP协议进行广播发送数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

使用ifconfig命令查看自己的廣播地址:

wlp3s0b1 Link encap:以太網(wǎng) 硬件地址 inet 地址:192.168.1.102 廣播:192.168.1.255 掩碼:255.255.255.0

可以看到主機的廣播地址是192.168.1.255

編寫UDP服務(wù)器程序:

#include <sys/socket.h> #include <netdb.h> #include <unistd.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <signal.h> #include <time.h> #include <arpa/inet.h>int sockfd;void sig_handler(int signo);int main(int argc, char * argv[]) {if(argc < 2){printf("usage: %s port\n", argv[0]);exit(1);}if(signal(SIGINT, sig_handler) == SIG_ERR) //開始捕獲信號 SIGINT {perror("signal sigint error!");exit(1);}/*步驟1: 創(chuàng)建socket*/sockfd = socket(AF_INET, SOCK_DGRAM, 0);if(sockfd < 0){perror("socket error!");exit(1);}/*步驟2: 調(diào)用bind函數(shù)對socket和地址進行綁定*/struct sockaddr_in serveraddr;memset(&serveraddr, 0, sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_port = htons(atoi(argv[1])); //portserveraddr.sin_addr.s_addr = INADDR_ANY; //ip匹配所有的ipif(bind(sockfd, (struct sockaddr*)&serveraddr, sizeof(serveraddr)) < 0){perror("bind error!");exit(1);}struct sockaddr_in clientaddr;socklen_t len = sizeof(clientaddr);char buffer[1024];while(1){memset(buffer, 0, sizeof(buffer));memset(&clientaddr, 0, sizeof(clientaddr));if(recvfrom(sockfd, buffer, sizeof(buffer), 0, (struct sockaddr*)&clientaddr, &len) < 0){perror("recvfrom error!");exit(1);}else{char ip[16];inet_ntop(AF_INET, &clientaddr.sin_addr.s_addr, ip, sizeof(ip));int port = ntohs(clientaddr.sin_port);printf("%s(%d): %s\n", ip, port, buffer);}} }void sig_handler(int signo) {if(signo == SIGINT){printf("receiver clolse!\n");;close(sockfd);exit(1);} }

編寫UDP廣播程序:

#include <sys/socket.h> #include <netdb.h> #include <unistd.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <signal.h> #include <time.h> #include <arpa/inet.h>int sockfd;void sig_handler(int signo);int main(int argc, char * argv[]) {if(argc < 3){printf("usage: %s port\n", argv[0]);exit(1);}if(signal(SIGINT, sig_handler) == SIG_ERR) //開始捕獲信號 SIGINT {perror("signal sigint error!");exit(1);}/*步驟1: 創(chuàng)建socket*/sockfd = socket(AF_INET, SOCK_DGRAM, 0);if(sockfd < 0){perror("socket error!");exit(1);}int opt = 1;setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &opt, sizeof(opt));/*步驟2: 調(diào)用bind函數(shù)對socket和地址進行綁定*/struct sockaddr_in serveraddr;memset(&serveraddr, 0, sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_port = htons(atoi(argv[2])); //portinet_ntop(AF_INET, (struct sockaddr*)&serveraddr.sin_addr.s_addr,argv[1], sizeof(argv[1]));printf("I will broadcast...\n");char *info = "hello Andrew";size_t size = strlen(info) * sizeof(char);if(sendto(sockfd, info, size, 0, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0){perror("sendto error!");exit(1);}else{printf("broadcastn success!\n");}}void sig_handler(int signo) {if(signo == SIGINT){printf("receiver clolse!\n");;close(sockfd);exit(1);} }

測試:

運行服務(wù)器:

andrew@andrew-Thurley:~/work/network$ bin/receiver 8888 127.0.0.1(35423): hello Andrew 127.0.0.1(43304): hello Andrew 127.0.0.1(58134): hello Andrew 127.0.0.1(53262): hello Andrew 127.0.0.1(35285): hello Andrew 127.0.0.1(58630): hello Andrew 127.0.0.1(41278): hello Andrew 127.0.0.1(39032): hello Andrew 127.0.0.1(55642): hello Andrew 127.0.0.1(44132): hello Andrew 127.0.0.1(35112): hello Andrew

運行客戶端:

andrew@andrew-Thurley:~/work/network$ bin/broadcast 192.168.1.255 usage: bin/broadcast port andrew@andrew-Thurley:~/work/network$ bin/broadcast 192.168.1.255 8888 I will broadcast... broadcastn success! andrew@andrew-Thurley:~/work/network$ bin/broadcast 192.168.1.255 8888 I will broadcast... broadcastn success! andrew@andrew-Thurley:~/work/network$ bin/broadcast 192.168.1.255 8888

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的sock使用UDP协议进行广播发送数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆视频免费在线观看 | 少妇4p| 黑料av在线 | 人人搞人人爱 | 亚洲男女一区二区三区 | 九九色在线 | v天堂在线观看 | 性开放的欧美大片 | 国产亚洲精品精品国产亚洲综合 | 天堂中文字幕在线 | 日韩乱码在线观看 | 中日韩精品在线 | 亚洲av中文无码乱人伦在线观看 | 少妇一级淫片免费放2 | 精品欧美一区二区久久久久 | 在线观看黄色网页 | 最新欧美日韩 | 欧美顶级少妇做爰 | 五月婷婷激情小说 | 国产精品视频入口 | 日本三级播放 | 三级国产视频 | 四虎影视免费在线观看 | 欧美在线一卡 | 一区三区视频在线观看 | 97人妻人人澡人人爽人人精品 | 农村村妇真实偷人视频 | 国产丰满农村老妇女乱 | 黄色av大全 | 久久国产这里只有精品 | 国产一级在线观看视频 | 国产一区二区三区 | 国产一区二区在线观看视频 | 中国a一片一级一片 | 极品白嫩的小少妇 | 欧美123| 在线免费观看视频网站 | 日韩网站在线观看 | 性活交片大全免费看 | 国产高清片 | 啪啪网视频 | 黄色片网站免费在线观看 | 黄色污污网站在线观看 | 2020国产精品视频 | 黄色片免费看 | 99re6在线 | 波多野结衣视频免费观看 | 黄色在线免费看 | 日日碰狠狠添天天爽无码av | 91香蕉视频在线观看免费 | 天天摸天天操天天射 | 九九热在线视频观看 | 日本体内she精高潮 男女视频在线免费观看 | 怡红院男人的天堂 | 亚洲欧美日韩精品在线观看 | 男女爽爽视频 | 18pao国产成视频永久免费 | 日剧大尺度床戏做爰 | 加勒比色综合 | 亚洲精品一区二区三区婷婷月 | 国产三区av | 国产剧情一区二区三区 | 日韩在线影视 | 免费超爽大片黄 | 成人免费观看视频网站 | xxx黄色片 | 久久久久久久久电影 | 久久婷色 | 伊人成综合网 | 日本xxxx裸体xxxx出水 | 亚洲天堂成人网 | 国产一二| 日日躁夜夜躁aaaabbbb | 国产成人视屏 | 亚洲日本精品 | 亚洲美女一级片 | 五月天激情丁香 | 播放灌醉水嫩大学生国内精品 | 丰满人妻熟妇乱偷人无码 | 成人精品视频一区二区三区尤物 | 97香蕉久久夜色精品国产 | 欧美亚洲一区二区在线观看 | 久久综合伊人77777蜜臀 | 国产精品五月天 | 亚洲中字 | 亚洲在线播放 | 少妇3p视频 | 国产成人精品国内自产拍免费看 | 欧美一区欧美二区 | 久久久久久久久久久久Av | 男人天堂综合 | 色香视频首页 | av狠狠操 | 久久精品a | 日韩中文字幕视频在线观看 | 91人妻一区二区三区蜜臀 | 精品免费看| 别揉我奶头啊嗯一区二区 | 欧美激情自拍偷拍 |