收到与 WSAIoctl 关联的错误
getting an error associated with WSAIoctl
嘿伙计们,我一直在尝试制作一个简单的控制台应用程序来查看我的网络流量,:P我试图读取它。
无论如何,我从WSAIoctl函数中收到错误,WSAGetLastError给我的错误代码是10022,MSDN告诉我它与此相关联:
参数无效。提供了一些无效的参数(例如,为 setsockopt 函数指定无效级别)。在某些情况下,它还指套接字的当前状态,例如,在未侦听的套接字上调用 accept。
我尝试过在没有运气的情况下弄乱论点:/请帮我:P
这是我的代码:
WSADATA wsaData;
int startup = WSAStartup(0x0202, &wsaData);
if(startup != 0) {
cout << "Error: could not initalize WSADATA for target socket." << endl;
system("pause");
}
unsigned long BytesReturned;
int InBuffer, OutBuffer, LPCVoid;
int optValue = 1;
SOCKET sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
Sleep(await);
cout << "creating and configuring RAW_SOCK" << endl;
int listening = listen(sock, SOMAXCONN); // tried debugging using this.
int sockopt = setsockopt(sock, IPPROTO_IP, 2, (char*)&optValue, sizeof(optValue));
int SockMode = WSAIoctl(sock, SIO_RCVALL, &InBuffer, sizeof(InBuffer), &OutBuffer, sizeof(OutBuffer), &BytesReturned, NULL, NULL);
//0x98000001
if(SockMode == 0) {
Sleep(await);
cout << "RAW_SOCKET created successfully!" << endl << "Trying to listen for incoming network packets..." << endl;
int listeningk = listen(sock, SOMAXCONN);
if(listening == 0) {
Sleep(await);
cout << "socket listening without problems, looking for incoming request..." << endl;
}
else {
Sleep(await);
cout << "Error: could not listen on socket." << endl;
exit(EXIT_FAILURE);
}
}
else {
Sleep(await);
cout << "Error: could not create RAW_SOCKET..." << endl << "Dumping SockMode!rnint SockMode = " << SockMode << endl;
cout << "setsockopt = " << sockopt << endl;
cout << "WSAGetLastError: " << WSAGetLastError() << endl;
system("pause");
}
您的套接字需要绑定才能收听。 此外,对于这个WSAIoctl
选项,您必须服从(来自MSDN文档):
套接字还必须绑定到显式本地 IPv4 或 IPv6 接口,这意味着您无法绑定到INADDR_ANY或 in6addr_any。
我建议在尝试推进这段代码之前,先进行一些基本的自我教育。 有一些常见操作的代码示例,例如 MSDN 中的套接字设置。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 与 std::unique_ptr 和抽象类关联的编译错误
- 在Boost Graph中使用find()在Boost关联属性图中使用Find()错误
- 如何在关联指针时编写无错误的代码
- 与创建模板类关联的错误
- 收到与 WSAIoctl 关联的错误