温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

unix 网络编程udp简单例程

发布时间:2020-06-04 01:15:41 阅读:503 作者:xieyihua 栏目:系统运维
Unix服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>
server.c  #include <sys/types.h>          /* See NOTES */ #include <sys/socket.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #include <arpa/inet.h> #include <unistd.h>    int main(int argc, char** argv) {     int ret;     int len = sizeof(struct sockaddr);           //创建socket       int sockfd = socket(AF_INET, SOCK_DGRAM,0);     if(sockfd == -1)     {         perror("socket\n");         exit(1);     }      //将addr地址与socket绑定在一起      //初始化地址     struct sockaddr_in addr;     addr.sin_family = AF_INET;     addr.sin_port = htons(4444);     addr.sin_addr.s_addr = INADDR_ANY;     memset(addr.sin_zero,8,0);          //进行绑定     ret = bind(sockfd, (struct sockaddr*)&addr, len);     if(ret == -1)     {         perror("bind\n");         exit(1);         }      //接收数据     struct sockaddr_in addr_client;     while(1)     {         char buf[100];         memset(buf,100,0);         socklen_t length = sizeof(struct sockaddr);         fputs("等待数据。。。。\n",stdout);         ssize_t recnum = recvfrom(sockfd, buf, 100,MSG_WAITALL, (struct sockaddr*)&addr_client,&length);         if(recnum<0)         {             perror("recvfrom\n");             exit(1);                     }         printf("received(%d): %s\n",recnum,buf);         if(strcmp(buf,"stop") == 0)         {             break;         }     }             close(sockfd);     fputs("退出成功!!\n",stdout);          return 0; }  ----------------------------client.c   #include <sys/types.h>          /* See NOTES */ #include <sys/socket.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #include <arpa/inet.h> #include <unistd.h>  int main(int argc, char** argv) {       int len = sizeof(struct sockaddr); //创建socket       int sockfd = socket(AF_INET, SOCK_DGRAM,0);     if(sockfd == -1)     {         perror("socket\n");         exit(1);     }      //将addr地址与socket绑定在一起      //初始化地址     struct sockaddr_in addr;     addr.sin_family = AF_INET;     addr.sin_port = htons(4444);     addr.sin_addr.s_addr = inet_addr("127.0.0.1");     memset(addr.sin_zero,8,0);          while(1)     {         char buf[100];         memset(buf,100,0);         fputs("请输入内容:\n",stdout);                  //存在scanf字符串空格问题         scanf("%s",buf);         fputs("确认发送内容为:\n",stdout);         fputs(buf,stdout);         printf("\n");         sendto(sockfd, buf, 100, 0, (struct sockaddr*)&addr, len);         fputs("确认发送完成\n",stdout);     }              return 0; }  ----------------------------makefile  .PHONY: all clean  all:server client  server:server.c     gcc -o server server.c -Wall client:client.c     gcc -o client client.c -Wall      clean:     rm -f *.o client server *~ 

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×