Chinaunix首页 | 论坛 | 博客
  • 博客访问: 535670
  • 博文数量: 142
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1452
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 16:28
文章分类

全部博文(142)

文章存档

2016年(10)

2015年(60)

2014年(72)

我的朋友

分类: C/C++

2014-10-22 10:37:20



udpserver.c

点击(此处)折叠或打开

  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <error.h>
  5. #include <sys/socket.h>
  6. #include <sys/types.h>
  7. #include <arpa/inet.h>
  8. #include <strings.h>

  9. int main(int argc, char *argv[])
  10. {
  11.     struct sockaddr_in server;
  12.     struct sockaddr_in source;
  13.     socklen_t len;
  14.     char recv[1024];
  15.     int fd;
  16.     int n;

  17.     fd = socket(AF_INET,SOCK_DGRAM,0);
  18.     if(fd < 0) {
  19.         printf("socket error\n");
  20.     }
  21.     bzero(&source,sizeof(source));
  22.     bzero(&server,sizeof(server));
  23.     server.sin_family = AF_INET;
  24.     server.sin_port = htons(20000);
  25.     server.sin_addr.s_addr = htonl(INADDR_ANY);

  26.     if(bind(fd,(struct sockaddr*)&server,sizeof(struct sockaddr)) < 0) {
  27.         printf("bind error\n");
  28.         close(fd);
  29.     }
  30.     len = sizeof(source);
  31.     while(1) {
  32.         
  33.         n = recvfrom(fd,recv,1024,0,(struct sockaddr*)&source,&len);

  34.         if(n > 0) {
  35.             sendto(fd,recv,n,0,(struct sockaddr*)&source,len);
  36.         }
  37.     }
  38.     return 0;
  39. }

udpclient.c

点击(此处)折叠或打开

  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <sys/socket.h>
  5. #include <sys/types.h>
  6. #include <arpa/inet.h>
  7. #include <string.h>

  8. int main(int argc, char* argv[])
  9. {
  10.     int fd;
  11.     int n;
  12.     struct sockaddr_in server;
  13.     char recv[1024];
  14.     char send[1024];

  15.     fd = socket(AF_INET,SOCK_DGRAM,0);


  16.     if(fd < 0) {
  17.         printf("socket error\n");
  18.     }

  19.     server.sin_family = AF_INET;
  20.     server.sin_port = htons(20000);
  21.     inet_pton(AF_INET,"10.155.3.243",&server.sin_addr);
  22.     while(fgets(send,1024,stdin)!=NULL)
  23.     {
  24.         sendto(fd,send,strlen(send),0,(struct sockaddr*)&server,sizeof(struct sockaddr));
  25.         n = recvfrom(fd,recv,1024,0,NULL,NULL);

  26.         recv[n] = '\0';
  27.         if(n >0)
  28.             fputs(recv,stdout);
  29.     }
  30.     return 0;
  31. }


阅读(657) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~