• folly库net库udp小例子


    #include <iostream>
    
    #include "include/folly/net/NetworkSocket.h"
    #include "include/folly/net/NetOps.h"
    
    
    
    #ifdef __cplusplus
    
    extern "C" {
    
    #endif
    
    
    #include <sys/socket.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <sys/types.h>
    #include <string.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    #ifdef __cplusplus
    
    }
    
    #endif 
    
    
    using namespace folly;
    using namespace std;
    int main(int argc, char *argv[]) {
        if(argc!=3){
            printf("please input:client ip port!
    ");
        }
    
    
        int socket_fd = socket(AF_INET, SOCK_DGRAM, 0);
        if (socket_fd == -1){
            std::cout << "socket error!" << std::endl;
        }
        NetworkSocket network_socket = NetworkSocket(socket_fd);
        struct sockaddr_in dest_sockaddr_in = {0};
        dest_sockaddr_in.sin_family = AF_INET;
        dest_sockaddr_in.sin_port = htons(atoi(argv[2]));
        dest_sockaddr_in.sin_addr.s_addr = inet_addr(argv[1]);
    
    
        char buf[1024] = {0};
    
        while (1)
        {
            printf("please input msg:");
            scanf("%s",buf);
            folly::netops::sendto(network_socket,buf,strlen(buf),0,(struct sockaddr *)&dest_sockaddr_in,sizeof(dest_sockaddr_in));
        
            if(strcmp(buf, "exit") == 0)
            {
                break;
            }
            memset(buf,0,sizeof(buf));
        }
    
     
        folly::netops::close(network_socket);
        return 0;
    }
    
    #include <iostream>
    
    #include "include/folly/net/NetworkSocket.h"
    #include "include/folly/net/NetOps.h"
    
    
    
    using namespace folly;
    using namespace std;
    
    
    #ifdef __cplusplus
    
    extern "C" {
    
    #endif
    
    
    #include <sys/socket.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <sys/types.h>
    #include <string.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    #ifdef __cplusplus
    
    }
    
    #endif 
    
    
    
    
    
    
    int main(int argc,char *argv[])
    {
    
        if(argc != 2)
        {
            printf("please input:server port
    ");
            return -1;
        }
    
        int socket_fd = socket(AF_INET,SOCK_DGRAM,0);
        if(socket_fd < 0 )
        {
            printf("socket error!
    ");
            return -1;
        }
        NetworkSocket network_socket = NetworkSocket(socket_fd);
    
        struct sockaddr_in  local_addr = {0};
        local_addr.sin_family  = AF_INET;
        local_addr.sin_port    = htons(atoi(argv[1]));
        local_addr.sin_addr.s_addr = INADDR_ANY;
    
        int ret = folly::netops::bind(network_socket, (struct sockaddr*)&local_addr, sizeof(local_addr));
        if(ret < 0)
        {
            printf("bind error!
    ");
            close(socket_fd);
            return -1;
        }
        else
        {
            printf("recvfrom ready!
    ");
        }
    
    
        struct sockaddr_in  src_addr = {0};
        int len = sizeof(src_addr);
        char buf[1024] = {0};
    
        while(1)
        {
            ret =folly::netops::recvfrom(network_socket, buf, sizeof(buf), 0, (struct sockaddr *)&src_addr, (socklen_t*)&len);
    
            if(ret == -1)
            {
                break;
            }
            printf("ip:%s,port:%d,",inet_ntoa(src_addr.sin_addr),ntohs(src_addr.sin_port));
            printf("buf=%s
    ",buf);
            if(strcmp(buf, "exit") == 0)
            {
                break;
            }
            memset(buf, 0, sizeof(buf));
        }
    
        folly::netops::close(network_socket);
    }
  • 相关阅读:
    GNU KHATA——开源的会计管理软件
    Web服务精讲–搭个 Web 服务器(二)
    据说Linuxer都难忘的25个画面
    谷歌开源运作解密
    实战Centos系统部署Codis集群服务
    这些被称为史上最 “贱” 黑客
    Linux 利器- Python 脚本编程入门(一)
    在 Ubuntu 16.04 上安装 LEMP 环境之图文向导
    Linux下6种优秀的邮件传输代理
    移动互联网期末笔记
  • 原文地址:https://www.cnblogs.com/iuyy/p/14747778.html
Copyright © 2020-2023  润新知