// UdpProject.cpp : Defines the entry point for the console application.
//#include <winsock2.h>
#include <iostream.h>int main(int argc, char* argv[])
{
Socket sock;
Char szMsg[]="this is a Udp Test";
Word wVersionRequested;
WSAData wsaData;
int err;
wVersionRequested=MakeWord(2,2);
err=WSAStartup(wVersionRequested,&wsaData);
if(err!=0)
{
cout<<"Socket2.0 Fail!";
return;
}
if(Lobyte(wsaData.wVersion)!=2||Hibyte(wsa.wVersion)!=0)
{
WSACleanUp();
return;
}
sock=socket(AF_INET,SOCK_DGRAM,0);
if(Invalid_Socket==sock)
{
cout<<"Socket Create Fail!";
return;
}
bool opt=true;
setsockopt=(sock,SOL_Socket,So_BroadCast,reinterpret_cast<char Far *>(&opt),sizeof(opt));
sockaddr_in addrto;
memset(&addrto,0,sizeof(addrto));
addrto.sin_family=AF_INET;
addrto.sin_addr.s_addr=InAddr_BroadCast;
addrto.sin_port=htons(7861);
int nlen=sizeof(addrto);
unsigned int uIndex=1;
while(true)
{
Sleep(1000);
if(sendto(sock,szMsg,0,(sockaddr*)&addrto,nlen)==Socket_Error)
{
cout<<WSAGetLastError()<<endl
}
else
{
cout<<uIndex++<<"an UDP package is sended."<<endl;
}
}
if(!closesocket(sock))
{
WSAGetLastError();
return;
}
if(!WSACleanup())
{
WSAGetLastError();
return;
}
printf("Hello World!\n");
return 0;
}刚学C++,请高手指点迷津!谢谢

解决方案 »

  1.   

    程序的任意位置加一行
    #pragma comment(lib,"ws2_32.lib");main的return 0;
    之前加一个getchar();函数,或者pause函数,让程序停住
    解决你的问题就给分
      

  2.   

    UdpProject.exe - 1 error(s), 0 warning(s)  没有详细错误。
    关键是没有生成那个可执行文件,为什么?
      

  3.   

    // Console6.cpp : Defines the entry point for the console application.
    //#include "stdafx.h"
    #include <winsock2.h>
    #include <iostream.h>
    #pragma comment(lib, "WS2_32") // 链接到WS2_32.libvoid main(int argc, char* argv[])
    {
    SOCKET sock;
    char szMsg[]="this is a Udp Test";
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested=MAKEWORD(2,2);
    err=WSAStartup(wVersionRequested,&wsaData);
    if(err!=0)
    {
    cout<<"Socket2.0 Fail!";
    return;
    }
    if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=0)
    {
    WSACleanup();
    return;
    }
    sock=socket(AF_INET,SOCK_DGRAM,0);
    if(INVALID_SOCKET==sock)
    {
    cout<<"Socket Create Fail!";
    return;
    }
    bool opt=true;
    setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char*)&opt,sizeof(opt));
    sockaddr_in addrto;
    memset(&addrto,0,sizeof(addrto));
    addrto.sin_family=AF_INET;
    addrto.sin_addr.s_addr=INADDR_BROADCAST;
    addrto.sin_port=htons(7861);
    int nlen=sizeof(addrto);
    unsigned int uIndex=1;
    while(true)
    {
    Sleep(1000);
    if(sendto(sock,szMsg,strlen(szMsg)+1,0,(sockaddr*)&addrto,nlen)==SOCKET_ERROR)
    {
    cout<<WSAGetLastError()<<endl;
    }
    else
    {
    cout<<uIndex++<<"an UDP package is sended."<<endl;
    }
    }
    if(!closesocket(sock))
    {
    WSAGetLastError();
    return;
    }
    if(!WSACleanup())
    {
    WSAGetLastError();
    return;
    }
    printf("Hello World!\n");
    return ;
    }
      

  4.   


    if(sendto(sock,szMsg,0,(sockaddr*)&addrto,nlen)==Socket_Error)
    {
    cout<<WSAGetLastError()<<endl;//分号也没有
    }
      

  5.   

    这是提示的错误,请帮忙分析下,谢谢
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(10) : error C2065: 'Socket' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(10) : error C2146: syntax error : missing ';' before identifier 'sock'
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(10) : error C2065: 'sock' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(11) : error C2065: 'Char' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(11) : error C2146: syntax error : missing ';' before identifier 'szMsg'
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(11) : error C2065: 'szMsg' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(11) : error C2059: syntax error : ']'
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(12) : error C2065: 'Word' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(12) : error C2146: syntax error : missing ';' before identifier 'wVersionRequested'
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(12) : error C2065: 'wVersionRequested' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(15) : error C2065: 'MakeWord' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(22) : error C2065: 'Lobyte' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(22) : error C2065: 'Hibyte' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(22) : error C2065: 'wsa' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(22) : error C2228: left of '.wVersion' must have class/struct/union type
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(24) : error C2065: 'WSACleanUp' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(28) : error C2065: 'Invalid_Socket' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(34) : error C2065: 'SOL_Socket' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(34) : error C2065: 'So_BroadCast' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(34) : error C2061: syntax error : identifier 'Far'
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(45) : error C2059: syntax error : ')'
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(48) : error C2143: syntax error : missing ';' before '}'
    执行 cl.exe 时出错.UdpProject.exe - 1 error(s), 0 warning(s)
      

  6.   


    #include "stdafx.h"#include <winsock2.h>
    #include <iostream>
    #pragma comment(lib, "WS2_32")
    using namespace std;int main(int argc, char* argv[])
    {
    SOCKET sock;
    char szMsg[]="this is a Udp Test";
    WORD wVersionRequested;
    WSAData wsaData;
    int err;
    wVersionRequested=MAKEWORD(2,2);
    err=WSAStartup(wVersionRequested,&wsaData);
    if(err!=0)
    {
    cout<<"Socket2.0 Fail!";
    return -1;
    }
    if(LOBYTE(wsaData.wVersion)!=2|| HIBYTE(wsaData.wVersion)!=2)
    {
    WSACleanup();
    return -1;
    }
    sock=socket(AF_INET,SOCK_DGRAM,0);
    if(INVALID_SOCKET==sock)
    {
    cout<<"Socket Create Fail!";
    return -1;
    }
    BOOL opt= TRUE;
    setsockopt(sock,SOL_SOCKET,SO_BROADCAST, (char*)(&opt),sizeof(opt));
    sockaddr_in addrto;
    memset(&addrto,0,sizeof(addrto));
    addrto.sin_family=AF_INET;
    addrto.sin_addr.s_addr=INADDR_BROADCAST;
    addrto.sin_port=htons(7861);
    int nlen=sizeof(addrto);
    unsigned int uIndex=1;
    while(true)
    {
    Sleep(1000);
    if(sendto(sock, szMsg, strlen(szMsg), 0, (sockaddr*)&addrto,nlen)==SOCKET_ERROR)
    {
    cout<<WSAGetLastError()<<endl;
    }
    else
    {
    cout<<uIndex++<<"an UDP package is sended."<<endl;
    }
    }
    if(!closesocket(sock))
    {
    WSAGetLastError();
    return -1;
    }
    if(!WSACleanup())
    {
    WSAGetLastError();
    return -1;
    }
    printf("Hello World!\n");
    return 0;
    }
    大哥,你注意一下大小写行不?
      

  7.   

    九楼说的对,错误里面有好多是大小写问题,谢谢高手啊!但还有后三个错误不知怎么解决,请指教
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(22) : error C2065: 'wsa' : undeclared identifier
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(22) : error C2228: left of '.wVersion' must have class/struct/union type
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(34) : error C2659: '=' : overloaded function as left operand
    E:\Work\TestPorjects\UdpProject\UdpProject.cpp(45) : error C2660: 'sendto' : function does not take 5 parameters
      

  8.   

    根据错误类型:error C2065 是指变量没有声明,
    error C2660是指函数调用参数有问题