Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1042986
  • 博文数量: 297
  • 博客积分: 11721
  • 博客等级: 上将
  • 技术积分: 3431
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-25 10:21
文章分类

全部博文(297)

文章存档

2016年(9)

2011年(71)

2010年(137)

2009年(80)

分类: C/C++

2009-12-02 18:54:28

UDP服务器端:

#include
#include
#include
#include
#include
#include
#include

#define MAXLINE 4096

int main(int argc,char ** argv)
{
    int sockfd;
    struct sockaddr_in servaddr,cliaddr;
    
    sockfd = socket(AF_INET,SOCK_DGRAM,0);
    memset(&servaddr,0,sizeof(servaddr));
    memset(&servaddr,0,sizeof(cliaddr));
   
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(5000);
    inet_pton(AF_INET,"127.0.0.1",&servaddr.sin_addr);
    //servaddr.sin_addr.s_addr = INADDR_ANY;
   
    bind(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
   
    int n;
    socklen_t len = sizeof(cliaddr);
    char msg[MAXLINE];
   
    for(;;)
    {
        n = recvfrom(sockfd,msg,sizeof(msg),0,(struct sockaddr *)&cliaddr,&len);
        sendto(sockfd,msg,n+6,0,(struct sockaddr *)&cliaddr,len);
    }   
    return 0;


UDP客户端:

#include
#include
#include
#include
#include
#include
#include

#define MAXLINE 4096

int main(int argc,char ** argv)
{
    int sockfd;
    struct sockaddr_in servaddr;
   
    memset(&servaddr,0,sizeof(servaddr));
   
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(5000);
    inet_pton(AF_INET,"127.0.0.1",&servaddr.sin_addr);       

    sockfd = socket(AF_INET,SOCK_DGRAM,0);
   
    int n;
    char sendline[MAXLINE],recvline[MAXLINE+1];
   
    while(fgets(sendline,MAXLINE,stdin)!=NULL)
    {
        sendto(sockfd,sendline,strlen(sendline),0,(struct sockaddr *)&servaddr,sizeof(servaddr));
        n = recvfrom(sockfd,recvline,MAXLINE,0,NULL,NULL);
        recvline[n]=0;
        fputs(recvline,stdout);
    }
   
    return 0;
}
阅读(667) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~