Chinaunix首页 | 论坛 | 博客
  • 博客访问: 379254
  • 博文数量: 466
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-16 13:59
文章分类

全部博文(466)

文章存档

2015年(466)

我的朋友

分类: C/C++

2015-03-16 14:44:35

/* server.c */

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <strings.h>
#define PORT 8088
int main()
{
    char buf[1024];
    int sockfd;
    int len;
    int ret;
    struct sockaddr_in inet_addr;
    struct sockaddr_in addr_clnt;
    sockfd=socket(AF_INET, SOCK_DGRAM, 0);
    if(sockfd==-1)
    {
        perror("创建SOCK失败!");
        return(-1);
    }

    inet_addr.sin_family=AF_INET;
    inet_addr.sin_port=htons(PORT);
    inet_addr.sin_addr.s_addr=htonl(INADDR_ANY);
    bzero((void *)&(inet_addr.sin_zero), 8);
    len=sizeof(inet_addr);

    ret=bind(sockfd, (struct sockaddr *)&inet_addr, len);
    if(ret==-1)
    {
        perror("帮定IP失败!");
        close(sockfd);
        return(-1);
    }

            printf("\nsockfd:%d", sockfd);
    while(1)
    {
        fprintf(stdout, "\nWait recv, sockfd=%d....", sockfd);
        fflush(stdout);
        ret=recvfrom(sockfd, buf, sizeof(buf), 0, (struct sockaddr *)&addr_clnt, &len);
        if(ret<0)
        {
            perror("接收失败!");
            break;
        }
        buf[ret]=0;
        printf("\nFrom:[%s], [%s]", inet_ntoa(addr_clnt.sin_addr), buf);
        if(!(strncmp(buf, "stop", 4)))
                break;
    }
    close(sockfd);
    return(0);
}
    

/* client.c */

 

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <strings.h>
#include <string.h>
#define PORT 8088
int main()
{
    char buf[1024];
    int sockfd;
    int len;
    int ret;
    struct sockaddr_in server_addr;
    sockfd=socket(AF_INET, SOCK_DGRAM, 0);
    if(sockfd==-1)
    {
        perror("创建SOCK失败!");
        return(-1);
    }

    
    server_addr.sin_family=AF_INET;
    server_addr.sin_port=htons(PORT);
    server_addr.sin_addr.s_addr=inet_addr("192.168.45.38");
    bzero((void *)&(server_addr.sin_zero), (size_t)8);
    len=sizeof(server_addr);

    printf("\nInput: ");
/*
    scanf("%s", buf);
*/

    strcpy(buf, "Hello");
    sendto(sockfd, buf, sizeof(buf), 0, (struct sockaddr *)&server_addr, len);
    close(sockfd);
    return(0);
}
    

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