Linux网络编程--基础收集

 一、将字符串ip地址转换成网络中传输的数字      

#include <stdio.h>

#include <sys/socket.h>

#include <sys/epoll.h>

#include <netinet/in.h>

#include <arpa/inet.h>



int main()

{

    const char ip[] = "10.0.0.1";

    struct sockaddr_in addr;

    bzero(&addr, sizeof(addr));

   

    //如何将ip="10.0.0.2"转换成网络中的数字呢?
}
  • 方法1: addr.sin_addr.s_addr = inet_addr(ip);
  • 方法2: addr.sin_addr.s_addr = INADDR_ANY;//任意地址,内核自己选择ip
  • 方法3: inet_aton(ip, &(addr.sin_addr)); 
  • 方法4:inet_pton(AF_INET, ip, &addr.sin_addr);

二、设置非阻塞

  fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFD, 0)|O_NONBLOCK)

参考:

  Linux epoll模型

       Linux下select, poll和epoll IO模型的详解

  Epoll模型详解

  C++ - 网络编程模型 - Linux EPOLL

  linux下epoll模型accept并发问题

  Linux下高并发socket最大连接数所受的各种限制

    

  

需要的头文件:

  #include <sys/socket.h> 

  #include <sys/epoll.h>

  #include <netinet/in.h> 

  #include <arpa/inet.h>

  #include <fcntl.h>

你可能感兴趣的:(linux)