首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

UDP疏失,懂winsock编程的进来看看

2013-07-16 
UDP出错,懂winsock编程的进来看看本帖最后由 lghe001 于 2013-07-12 20:29:02 编辑#include winsock2.h#

UDP出错,懂winsock编程的进来看看
本帖最后由 lghe001 于 2013-07-12 20:29:02 编辑

#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib, "WS2_32.lib")
void main(void)
{
WSADATA              wsaData;
SOCKET               ReceivingSocket;
SOCKADDR_IN          ReceiverAddr;
int                  Port = 6000;
char                 ReceiveBuf[1024];
int                  BufLength = 1024;
SOCKADDR_IN          SenderAddr;
int                  SenderAddrSize = sizeof(SenderAddr);

if(WSAStartup(MAKEWORD(2,2), &wsaData))
{
printf("ERROR:%d\n",WSAGetLastError());
return;
}

// Create a new socket to receive datagrams on.

ReceivingSocket = socket(AF_INET, SOCK_DGRAM, 0);

ReceiverAddr.sin_family = AF_INET;
ReceiverAddr.sin_port = htons(Port);    
ReceiverAddr.sin_addr.s_addr = htonl(INADDR_ANY);

if(bind(ReceivingSocket, (SOCKADDR *)&SenderAddr, sizeof(SenderAddr)) == SOCKET_ERROR)
{
printf("ERROR:%d\n",WSAGetLastError());
return;
}
SOCKADDR_IN ClientAddr;

recvfrom(ReceivingSocket, ReceiveBuf, BufLength, 0,(SOCKADDR *)&ClientAddr, &SenderAddrSize);

closesocket(ReceivingSocket);

WSACleanup();
}

一到bind那就返回0x0000273f 使用了与请求的协议不兼容的地址。 unsigned long
不知是哪里设错了?

[解决办法]

    SenderAddr.sin_family = AF_INET;
    SenderAddr.sin_port = htons(Port);    


    SenderAddr.sin_addr.s_addr = htonl(INADDR_ANY);


不解释
[解决办法]
if(bind(ReceivingSocket, (SOCKADDR *)&SenderAddr, sizeof(SenderAddr)) == SOCKET_ERROR)

热点排行