亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

距離詳解Linux下的UDP方式通訊

2020-01-26 14:50:21
字體:
來源:轉載
供稿:網友

UDP方式點對點通訊 

#include <stdio.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <errno.h>#include <stdlib.h>#include <arpa/inet.h>int main(int argc, char **argv){struct sockaddr_in s_addr;struct sockaddr_in c_addr;int sock;socklen_t addr_len;int len;char buff[128];/* 創建 socket , 關鍵在于這個 SOCK_DGRAM */if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {perror("socket");exit(errno);} elseprintf("create socket./n/r");memset(&s_addr, 0, sizeof(struct sockaddr_in));/* 設置地址和端口信息 */s_addr.sin_family = AF_INET;if (argv[2])s_addr.sin_port = htons(atoi(argv[2]));elses_addr.sin_port = htons(7838);if (argv[1])s_addr.sin_addr.s_addr = inet_addr(argv[1]);elses_addr.sin_addr.s_addr = INADDR_ANY;/* 綁定地址和端口信息 */if ((bind(sock, (struct sockaddr *) &s_addr, sizeof(s_addr))) == -1) {perror("bind");exit(errno);} elseprintf("bind address to socket./n/r");/* 循環接收數據 */addr_len = sizeof(c_addr);while (1) {len = recvfrom(sock, buff, sizeof(buff) - 1, 0,(struct sockaddr *) &c_addr, &addr_len);if (len < 0) {perror("recvfrom");exit(errno);}buff[len] = '/0';printf("收到來自%s:%d的消息:%s/n/r",inet_ntoa(c_addr.sin_addr), ntohs(c_addr.sin_port), buff);}return 0;}

客戶端源代碼如下:

#include <stdio.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <errno.h>#include <stdlib.h>#include <arpa/inet.h>int main(int argc, char **argv){struct sockaddr_in s_addr;int sock;int addr_len;int len;char buff[128];/* 創建 socket , 關鍵在于這個 SOCK_DGRAM */if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {perror("socket");exit(errno);} elseprintf("create socket./n/r");/* 設置對方地址和端口信息 */s_addr.sin_family = AF_INET;if (argv[2])s_addr.sin_port = htons(atoi(argv[2]));elses_addr.sin_port = htons(7838);if (argv[1])s_addr.sin_addr.s_addr = inet_addr(argv[1]);else {printf("消息必須有一個接收者!/n");exit(0);}/* 發送UDP消息 */addr_len = sizeof(s_addr);strcpy(buff, "hello i'm here");len = sendto(sock, buff, strlen(buff), 0,(struct sockaddr *) &s_addr, addr_len);if (len < 0) {printf("/n/rsend error./n/r");return 3;}printf("send success./n/r");return 0;}

編譯程序用下列命令:

gcc -Wall simple-udpserver.c -o servergcc -Wall simple-udpclient.c -o client

運行程序用下列命令:

./server 127.0.0.1 7838./client 127.0.0.1 7838

UDP方式廣播通訊 
源代碼變成下面的:

#include <stdio.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <errno.h>#include <stdlib.h>#include <arpa/inet.h>int main(int argc, char **argv){struct sockaddr_in s_addr;int sock;int addr_len;int len;char buff[128];int yes;/* 創建 socket */if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {perror("socket");exit(errno);} elseprintf("create socket./n/r");/* 設置通訊方式對廣播,即本程序發送的一個消息,網絡上所有主機均可以收到 */yes = 1;setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &yes, sizeof(yes));/* 唯一變化就是這一點了 *//* 設置對方地址和端口信息 */s_addr.sin_family = AF_INET;if (argv[2])s_addr.sin_port = htons(atoi(argv[2]));elses_addr.sin_port = htons(7838);if (argv[1])s_addr.sin_addr.s_addr = inet_addr(argv[1]);else {printf("消息必須有一個接收者!/n");exit(0);}/* 發送UDP消息 */addr_len = sizeof(s_addr);strcpy(buff, "hello i'm here");len = sendto(sock, buff, strlen(buff), 0,(struct sockaddr *) &s_addr, addr_len);if (len < 0) {printf("/n/rsend error./n/r");return 3;}printf("send success./n/r");return 0;}

編譯這個程序用下列命令:

gcc -Wall broadc-udpclient.c -o client


運行程序用下列命令:

./client 192.168.0.255 7838


就會往192.168.0網絡內所有主機發消息。

其它主機如果運行了服務端:

./server 自己的IP地址 7838


則都會收到上述客戶端發的消息了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久免费精品| 国产精品偷伦免费视频观看的| 欧美噜噜久久久xxx| 欧美在线免费视频| 78m国产成人精品视频| 欧美野外wwwxxx| 国产欧美日韩高清| 日韩欧美极品在线观看| 91免费精品国偷自产在线| 久久精品视频免费播放| 成人中心免费视频| 亚洲国产精品99| 欧美激情喷水视频| 亚洲91精品在线观看| 久久精品青青大伊人av| 亚洲欧美另类中文字幕| 国产精品吹潮在线观看| 久久久精品一区二区| 欧美乱大交做爰xxxⅹ性3| 亚洲欧洲在线观看| 日韩成人激情影院| 国产精品久久久久久av福利软件| 91精品视频在线| 精品少妇一区二区30p| 日韩在线视频中文字幕| 日韩精品免费综合视频在线播放| 国产91|九色| 热99精品里视频精品| 日韩高清人体午夜| 欧美又大又硬又粗bbbbb| 亚洲国产高清高潮精品美女| 精品女同一区二区三区在线播放| 国产精品1234| 草民午夜欧美限制a级福利片| 欧美床上激情在线观看| 九九精品视频在线观看| 亚洲精品一区二区三区不| 在线看福利67194| 国产精品爽爽爽| 国产视频在线一区二区| 国产精品嫩草视频| 国内精品模特av私拍在线观看| 91精品国产91久久久久福利| 久久久精品日本| 日韩精品极品在线观看| 亚洲精品国产精品久久清纯直播| 亚洲一区二区久久久| 欧美极品美女电影一区| 日本乱人伦a精品| 欧美精品午夜视频| 色999日韩欧美国产| 国产精品电影观看| www高清在线视频日韩欧美| 国产欧美一区二区三区在线| 国产日韩中文在线| 日韩欧美国产网站| 97国产精品免费视频| 日韩成人黄色av| 亚洲国产天堂久久综合网| 久久久在线免费观看| 日韩视频免费在线观看| 日韩精品视频在线观看免费| 国产亚洲aⅴaaaaaa毛片| 久久精品国产v日韩v亚洲| 精品国内亚洲在观看18黄| 午夜精品福利视频| 亚洲色图欧美制服丝袜另类第一页| 日韩在线观看免费高清完整版| 国产日本欧美在线观看| 久久久久久国产精品三级玉女聊斋| 亚洲精品国精品久久99热| 欧美激情成人在线视频| 亚洲日本中文字幕免费在线不卡| 欧美性69xxxx肥| 7m第一福利500精品视频| 亚洲欧美日韩国产中文专区| 伊人久久久久久久久久久久久| 亚洲成**性毛茸茸| 欧美在线不卡区| 亚洲va码欧洲m码| 欧美精品少妇videofree| 国产主播在线一区| 91精品久久久久久久久久久久久| 97精品一区二区三区| 国产欧美一区二区三区在线看| 97超碰蝌蚪网人人做人人爽| 欧美激情图片区| 国产精品成人播放| 中文字幕精品www乱入免费视频| 97视频在线看| 一区二区三区高清国产| 亚洲四色影视在线观看| 亚洲欧美国内爽妇网| 日本精品在线视频| 日韩成人小视频| 欧美成人免费在线观看| 欧美国产日韩一区二区在线观看| 疯狂做受xxxx高潮欧美日本| 国产美女扒开尿口久久久| 亚洲电影免费在线观看| 久久免费福利视频| 亚洲国产日韩欧美在线99| 69视频在线免费观看| 色偷偷偷综合中文字幕;dd| 欧美日韩亚洲系列| 一本大道香蕉久在线播放29| 日韩在线视频免费观看高清中文| 国内精久久久久久久久久人| 日韩精品高清在线观看| 国产精品99导航| 日韩精品中文字幕在线观看| 久久精品视频播放| 成人福利免费观看| 亚洲国产精久久久久久久| 亚洲精品99久久久久中文字幕| 日韩中文字幕第一页| 国产精品视频一| 国产精品无码专区在线观看| 国产脚交av在线一区二区| 欧美综合激情网| 国产午夜精品久久久| 国产一区二区日韩精品欧美精品| 亚洲国产精品专区久久| 国内精品久久久久伊人av| 亚洲精品美女在线观看| 精品国产91久久久| 国产精品一区二区3区| 国产91久久婷婷一区二区| 色综合色综合久久综合频道88| 97精品国产97久久久久久免费| 91高清视频免费| 中文在线不卡视频| 亚洲欧美中文日韩v在线观看| 色999日韩欧美国产| 亚洲白拍色综合图区| 韩国美女主播一区| 国产精品三级网站| 久久中国妇女中文字幕| 国产精品狠色婷| 欧美性猛交xxxx黑人| 国产精品女主播视频| 136fldh精品导航福利| 国产美女精品视频| 国产美女精品免费电影| 国产91色在线|| 亚洲护士老师的毛茸茸最新章节| 国产欧美精品va在线观看| 国产精品露脸自拍| 亚洲精品免费在线视频| 奇米成人av国产一区二区三区| 国产精品久久久久久超碰| 欧美日韩一区二区免费在线观看| 欧美性生交xxxxx久久久| 久久国产一区二区三区| 欧美高清理论片| 日韩中文视频免费在线观看| 亚洲国产精品va| 欧美视频中文在线看| 大量国产精品视频| 日韩激情在线视频| 97香蕉久久超级碰碰高清版| 亚洲美女又黄又爽在线观看| 国产精品久久久久一区二区| 亚洲欧洲在线免费|