首先,许多错误c:14:对`_imp__wsastartup@8'在Visual Studio代码中

发布于 2025-01-24 19:29:59 字数 2769 浏览 1 评论 0原文

https://cdn.discordapp.com/attachments/503211497766256642/969144581394407484/unknown.png

我已经解决了3天,我已经在VSCODE工作了,我发现的所有类似问题的解决方案都是用于Clion或CodeBloks,有人知道VSCODE的解决方案吗? 据我了解,问题是我没有添加任何库。 或在此行中#pragma评论(lib,“ ws2_32.lib”)

#include <stdio.h>
    #include <winsock2.h>
    #include <ws2tcpip.h>
    
    #pragma comment(lib, “Ws2_32.lib”)
    
    int main(){
    
    
    WSADATA wsaData;    
    int iResult;
    
    
    iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);     
    
    if (iResult != 0)     
    {
         printf("WSAStartup failed: %d\n", iResult);
         return 1;
    }
    
    struct addrinfo *result = NULL, *ptr = NULL;     
    struct addrinfo hints;
    
    ZeroMemory(&hints, sizeof(hints));
    hints.ai_family = AF_UNSPEC;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_protocol = IPPROTO_TCP; 
    iResult = getaddrinfo("147.175.115.34", "777", &hints, &result);
    if (iResult != 0)     
    {
         printf("getaddrinfo failed: %d\n", iResult);
         WSACleanup();
         return 1;
    }
    else 
    printf("getaddrinfo fail…\n");
    
    SOCKET ConnectSocket = INVALID_SOCKET;
    ptr = result;
    
    ConnectSocket = socket(ptr->ai_family, ptr->ai_socktype,ptr->ai_protocol);
    
    if (ConnectSocket == INVALID_SOCKET)      
    {
         printf("Error at socket(): %ld\n", WSAGetLastError());
         freeaddrinfo(result);
         WSACleanup();
         return 1;
    }
    else
    printf("Error at socke occur…\n");
    
    iResult = connect(ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen);
    
    if (iResult == SOCKET_ERROR)     
    printf("Not connected to server…\n");
    else
    printf("Connected to server!\n");
    
    if (iResult == SOCKET_ERROR)    
    {
        closesocket(ConnectSocket);
        ConnectSocket = INVALID_SOCKET;
        WSACleanup();
        return 1;
    }
    
    Sleep(250);
    
    char sendbuf[4096];
    
    iResult = send(ConnectSocket, sendbuf, (int)strlen(sendbuf), 0);
    if (iResult == SOCKET_ERROR)
    {
         printf("send failed: %d\n", WSAGetLastError());
         closesocket(ConnectSocket);
         WSACleanup();
         return 1;
    } 
    
    printf("Bytes Sent: %ld\n", iResult);
    
    #define DEFAULT_BUFLEN 4096 
    
    int recvbuflen = DEFAULT_BUFLEN;
    char recvbuf[DEFAULT_BUFLEN];
    
    
    iResult = recv(ConnectSocket, recvbuf, recvbuflen, 0);     
    if ( iResult > 0 )
    printf("Bytes received: %d\n", iResult);
    else if ( iResult == 0 )
    printf("Connection closed\n");     
    else
    printf("recv failed with error: %d\n", WSAGetLastError());
    closesocket(ConnectSocket);
    WSACleanup();
    }
https://cdn.discordapp.com/attachments/503211497766256642/969144581394407484/unknown.png

I haven't been able to fix this error for 3 days now, I'm working in VSCode, and all the solutions to a similar problem I found were for Clion or CodeBloks, someone knows a solution for VSCode?
As far as I understood the problem is that I did not add any libraries.
Or in this line #pragma comment(lib, “Ws2_32.lib”)

#include <stdio.h>
    #include <winsock2.h>
    #include <ws2tcpip.h>
    
    #pragma comment(lib, “Ws2_32.lib”)
    
    int main(){
    
    
    WSADATA wsaData;    
    int iResult;
    
    
    iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);     
    
    if (iResult != 0)     
    {
         printf("WSAStartup failed: %d\n", iResult);
         return 1;
    }
    
    struct addrinfo *result = NULL, *ptr = NULL;     
    struct addrinfo hints;
    
    ZeroMemory(&hints, sizeof(hints));
    hints.ai_family = AF_UNSPEC;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_protocol = IPPROTO_TCP; 
    iResult = getaddrinfo("147.175.115.34", "777", &hints, &result);
    if (iResult != 0)     
    {
         printf("getaddrinfo failed: %d\n", iResult);
         WSACleanup();
         return 1;
    }
    else 
    printf("getaddrinfo fail…\n");
    
    SOCKET ConnectSocket = INVALID_SOCKET;
    ptr = result;
    
    ConnectSocket = socket(ptr->ai_family, ptr->ai_socktype,ptr->ai_protocol);
    
    if (ConnectSocket == INVALID_SOCKET)      
    {
         printf("Error at socket(): %ld\n", WSAGetLastError());
         freeaddrinfo(result);
         WSACleanup();
         return 1;
    }
    else
    printf("Error at socke occur…\n");
    
    iResult = connect(ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen);
    
    if (iResult == SOCKET_ERROR)     
    printf("Not connected to server…\n");
    else
    printf("Connected to server!\n");
    
    if (iResult == SOCKET_ERROR)    
    {
        closesocket(ConnectSocket);
        ConnectSocket = INVALID_SOCKET;
        WSACleanup();
        return 1;
    }
    
    Sleep(250);
    
    char sendbuf[4096];
    
    iResult = send(ConnectSocket, sendbuf, (int)strlen(sendbuf), 0);
    if (iResult == SOCKET_ERROR)
    {
         printf("send failed: %d\n", WSAGetLastError());
         closesocket(ConnectSocket);
         WSACleanup();
         return 1;
    } 
    
    printf("Bytes Sent: %ld\n", iResult);
    
    #define DEFAULT_BUFLEN 4096 
    
    int recvbuflen = DEFAULT_BUFLEN;
    char recvbuf[DEFAULT_BUFLEN];
    
    
    iResult = recv(ConnectSocket, recvbuf, recvbuflen, 0);     
    if ( iResult > 0 )
    printf("Bytes received: %d\n", iResult);
    else if ( iResult == 0 )
    printf("Connection closed\n");     
    else
    printf("recv failed with error: %d\n", WSAGetLastError());
    closesocket(ConnectSocket);
    WSACleanup();
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文