#include <winsock2.h>
#pragma comment(lib,"Ws2_32.lib")
希望对你有所帮助
errno.h 是C语言C标准函式库里的标头档,定义了通过错误码来回报错误信息的宏。errno本身是一个整型的全局变量,当使用errno的库函数,在执行出错时,只通过函数返回值返回一个表示出错的标识,如-1或NULL等,具体的出错原因会被赋值到errno中。通过查询errno可以确定具体的出错原因。
在errno.h中定义了一系列常见的宏,其形式为
#define EPERM 1 /* Operation not permitted */
可以划分为
1 定义一个宏名,以E开头;
2 定义其值,为一个正整数;
3 一个注释区域,说明该错误号出现时的具体错误内容。
errno.h中的条目因不同编译器的实现而有所区别,一般在100~128条范围内,具体内容可以在编译器的系统标准头文件夹下查看对应文件。
在出错函数(socket)后面用printf("%m\n")打印出来可以知道出错的原因%m表示errno和strerror(errno)
或者不怕麻烦的话添加头文件<error.h>
然后还是在出错的函数socket()后面添加打印信息printf("%d|%s\n", error, strerror(errno))
error表示该函数的出错码,后面的表示英文解释,具体的可以在linux下用慢查找
虽然这个办法笨了点。但是我只会这种方法....
你有抓包看了吗 linux下用tcpdump -w抓到本地来看 本地用wireshark抓 一抓包啥东西都清清楚楚
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)