zoukankan      html  css  js  c++  java
  • Linux 网络编程(UDP)

    • 客户端代码
    #include<stdio.h>  
    #include<stdlib.h>  
    #include<string.h>  
    #include<sys/socket.h>  
    #include<sys/types.h>  
    #include<unistd.h>  
    #include<netinet/in.h>
    #include <errno.h> 
    
    int main(int argc, char** argv)
    {
        int socketfd = 0;
        struct sockaddr_in server_addr;
        char recvbuf[1024];
        int port = 8001;
        int nbyte;
    
        if((socketfd = socket(AF_INET, SOCK_DGRAM, 0)) == 0){
            fprintf(stderr, "socket Error:%s
    a", strerror(errno));   
            exit(1);
        }
    
        bzero(&server_addr, sizeof(struct sockaddr_in));
        server_addr.sin_family = AF_INET;
        server_addr.sin_port = htons(port);
        server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    
        int len = sizeof(struct sockaddr_in);
    
        while(1){
            if(sendto(socketfd, "Hello Fredric", strlen("Hello Fredric"), 0, 
                (struct sockaddr *)&server_addr, len) == -1){
    
                fprintf(stderr, "sendto Error:%s
    a", strerror(errno)); 
                close(socketfd); 
                exit(1);
            }
    
            if((nbyte = recvfrom(socketfd, recvbuf, 1024, 0, (struct sockaddr *)&server_addr, &len)) == -1){
                fprintf(stderr, "recvfrom Error:%s
    a", strerror(errno));  
                close(socketfd);
                exit(1);
            }
    
            recvbuf[nbyte] = '';
            printf("recv data is:%s
    ",recvbuf);
        }
    
        close(socketfd);
    
        exit(0);
    }
    • 服务器端代码
    #include<stdio.h>  
    #include<stdlib.h>  
    #include<string.h>  
    #include<sys/socket.h>  
    #include<sys/types.h>  
    #include<unistd.h>  
    #include<netinet/in.h>
    #include <errno.h>
    
    int main(int argc, char** argv){
    
        int socketfd = 0;
        struct sockaddr_in server_addr;
        char recvbuf[1024];
        char sendbuf[1024];
        int port = 8001;
        int nbyte;
    
        if((socketfd = socket(AF_INET, SOCK_DGRAM, 0)) == 0){
            fprintf(stderr, "socket Error:%s
    a", strerror(errno));   
            exit(1);
        }
    
        bzero(&server_addr, sizeof(struct sockaddr_in));
        server_addr.sin_family = AF_INET;
        server_addr.sin_port = htons(port);
        server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    
        if((bind(socketfd, &server_addr, sizeof(server_addr))) == -1){
            fprintf(stderr, "bind Error:%s
    a", strerror(errno));   
            exit(1);
        }
        int len = sizeof(struct sockaddr_in);
        while(1){
            if((nbyte = recvfrom(socketfd, recvbuf, 1024, 0, (struct sockaddr*)&server_addr, &len)) == -1){
                fprintf(stderr, "recvfrom Error:%s
    a", strerror(errno)); 
                close(socketfd);
                exit(1);
            }
    
            recvbuf[nbyte] = '';
            printf("recv data is:%s
    ",recvbuf);
    
            printf("Input:");
            scanf("%s", sendbuf);
    
            if((nbyte = sendto(socketfd, sendbuf, sizeof(sendbuf), 
            0, (struct sockaddr*)&server_addr, len)) == -1){
                fprintf(stderr, "sendto Error:%s
    a", strerror(errno)); 
                close(socketfd); 
                exit(1);
            }
        }
    
        close(socketfd);
        exit(0);
    }
  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/4549315.html
Copyright © 2011-2022 走看看