zoukankan      html  css  js  c++  java
  • 【socket】Linux 实验调试问题记录

    记录贴

    1.Linux 下socket返回值总为-1

    sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);  
        if (sockfd < 0)  
        {  
            printf("ip:%s,socket error
    ",ips);  
            return ERROR;  
        }  
    

    经过查资料:

    • 创建原始套接字具体格式如下:

      int sockfd;sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_ICMP);
      
      • 第一个参数:协议族 AF_INET 代表TCP/IP协议
      • 第二个参数:SOCKET类型
      • 第三个参数:协议类型注意:@如果指定协议为0时,原始套接字(SOCK_RAW)可以接收内核传递给原始套接字的任何IP数据包,且只有超级用户才可以创建原始套接字。即在root权限下运行

    2.implicit declaration of function ‘memset’ /include ‘<string.h>’ or provide a declaration of ‘memset’

    • memset函数原型:void *memset(void *s, int c, size_t n);

    • 函数可以给任意类型数数组赋0,但注意

      • 第一个参数为void类型指针,需要进行强制转换

      • 包含头文件<string.h>

    3.-lsocket

    这个编译选项现在已经默认包含这个库,不用手动连接,直接编译即可。

    4.ifconfig查看网卡信息命令用不了

    • 首先可以试一下使用root权限:sudo ifconfig
    • 如果不行apt install net-tools进行安装,然后再用上面的命令

    5.icotl 函数设置接口标志 error:con‘t get flags:no such device

    一般是网卡的名称搞错了,可以用命令ip addr或者ifconfig查看网卡信息

  • 相关阅读:
    4. 变量
    3.进制的转换
    2 java程序入门
    truncate/delete/drop 区别
    sql server查询优化方法(海量数据)
    C#将DataTable转化成数组
    jq获取表格同一行第一列的内容
    C#将时间格式由yyyyMMdd转化成yyyy-MM-dd
    Easyui改变单元格背景颜色和字体颜色
    js判断数组中是否含有某元素(indexOf/includes)
  • 原文地址:https://www.cnblogs.com/wwj321/p/12638994.html
Copyright © 2011-2022 走看看