微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在 UDP 上创建套接字时出错

如何解决为什么在 UDP 上创建套接字时出错

#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
/*#include <windows.h> 
*/
#include<winsock2.h>
#include <windows.h>    /* Note: winsock2.h has included windows.h */
#include "udpserverclient.h"

int main(void)
{
    WSADATA  wsa_data;                /* type defined in winsock2.h */
    SOCKET   Udplisten,UDPClient;    /* type defined in winsock2.h */
    struct sockaddr_in local,client;  /* struct defined in winsock2.h */
    int      ipAddrSize,recvstatus,iterationStep;             
    char     recvBuffer[128];
    double   time_old,time_new,time_interval;

    printf("******** UDP Server ********\n\n");

    /* Step 1: startup winsocket - this is for Windows only */
    /* in pair with WSACleanup()    */
    if(WSAStartup(MAKEWORD(2,2),&wsa_data) != 0)
    {
        puts("WSAStartup Failed!");
        exit(1);
    }

    /* Step 2: Create socket and check it is successful */
    /* in pair with closesocket()   */
    Udplisten = socket(AF_INET,SOCK_DGRAM,0);
    if(Udplisten == SOCKET_ERROR)
        
    {
        printf("Failed to create scoket(): %d\n",WSAGetLastError());
        exit(1);
    }

    /* Step 3.1: Setup Parameters for local UDP Server*/
    local.sin_family = AF_INET;
    local.sin_addr.s_addr = inet_addr(MY_SERVER_IP_ADDRESS); /* defined in udpserverclient.h */
    local.sin_port = htons(MY_SERVER_PORT_NUMBER);           /* defined in udpserverclient.h */

    /* Step 3.2: Bind to the local UDP Server */
    if(bind(Udplisten,(struct sockaddr *)&local,sizeof(local)) == SOCKET_ERROR)
    {
        printf("Failed to bind(): %d\n",WSAGetLastError());
        exit(1);
    }

    /* Step 4: Listen */
        listen(Udplisten,8);

    /* Step 5: Accept in Loops*/
    for (;;)
    {
        /* Step 5.1: Accept */
        ipAddrSize = sizeof(client);
        UDPClient = accept(Udplisten,(struct sockaddr *)&client,&ipAddrSize);
        if(UDPClient == INVALID_SOCKET)
        {
            printf("Failed to accept(): %d\n",WSAGetLastError());
            exit(1);
        }  

我尝试使用 UDP 协议创建套接字。我收到 10045 错误。我之前使用 TCP 协议尝试过它,它在 TCP 协议上运行良好。我想尝试UDP协议。我更改了 UDP 协议所需的所有参数,但仍然出现 10045 错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。