大家好.
我正在尝试使用Windows套接字来发送和接收UDP数据包(在C++中).
它运作良好,直到三天前程序停止正常运行.
总结一下情况:
(*)我调查了这个错误.在UDP中,这意味着存在ICMP问题.("在UDP数据报套接字上,此错误表示先前的发送操作导致ICMP端口无法访问消息.").
我确实在recvfrom()之前调用了sendto(),所以问题不在这里.
我试图放下我的防火墙,看它是否改变了什么,但事实并非如此.我还试图放下流经我电脑的每个网络.在这种状态下,我设法使程序工作了几分钟,但是当我启用网络时它再次停止工作.我试图重复这个过程,但它不再适用了.
我尝试使用visual studio(2015)和MinGW进行编译.
我也尝试了另一台计算机(在Windows 7下,我的Windows 8.1),无济于事.
这是一个简单的测试文件,在我的计算机上不起作用.
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x501
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <vector>
#include <iostream>
int main() {
int clientSock;
char buf[100];
int serverPort;
/* Initializing WSA */
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
/* I create my socket */
struct addrinfo specs;
struct addrinfo *addr = new addrinfo;
ZeroMemory(&specs, sizeof(specs));
specs.ai_family = AF_INET;
specs.ai_socktype = SOCK_DGRAM;
specs.ai_flags = 0;
getaddrinfo("127.0.0.1", "2324", …Run Code Online (Sandbox Code Playgroud)