c/c++语言开发共享使用win32 API在C中广播UDP套接字

我使用UDP套接字创建了一个客户端服务器应用程序。 应用程序工作正常,因为只有一个服务器和一个客户端。 但现在我想让我的服务器“广播”。 我怎么能这样做? 我一直试图这样做但它在BIND函数中出错并返回错误“10049”。 这是我的代码片段:

#define broadcastPort 8888 WSADATA wsa; SOCKET s; //Initialise winsock printf("nInitialising Winsock..."); if (WSAStartup(MAKEWORD(2,2),&wsa) != 0) { printf("Failed. Error Code : %d",WSAGetLastError()); exit(EXIT_FAILURE); } printf("Socket Initialised.n"); //Create a socket if((s = socket(AF_INET , SOCK_DGRAM , IPPROTO_UDP )) == INVALID_SOCKET) { printf("Could not create socket : %d" , WSAGetLastError()); } printf("Socket created.n"); struct sockaddr_in serverSocket; char *broadcastPermission = "TRUE"; if ((setsockopt(s, SOL_SOCKET, SO_BROADCAST,(char *)broadcastPermission,sizeof(broadcastPermission))) < 0){ printf("%d",WSAGetLastError()); while(1); //exit(1); } ///Prepare the sockaddr_in structure/// serverSocket.sin_family = AF_INET; serverSocket.sin_addr.s_addr = INADDR_BROADCAST; serverSocket.sin_port = htons( broadcastPort); //Bind if( bind(s ,(struct sockaddr *)&serverSocket , sizeof(serverSocket)) == SOCKET_ERROR) { printf("nBind failed with error code : %d" , WSAGetLastError()); exit(EXIT_FAILURE); } printf("Bind donenn"); 

      以上就是c/c++开发分享使用win32 API在C中广播UDP套接字相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522060.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐