// 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++,请高手指点迷津!谢谢
//#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++,请高手指点迷津!谢谢
#pragma comment(lib,"ws2_32.lib");main的return 0;
之前加一个getchar();函数,或者pause函数,让程序停住
解决你的问题就给分
关键是没有生成那个可执行文件,为什么?
//#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 ;
}
if(sendto(sock,szMsg,0,(sockaddr*)&addrto,nlen)==Socket_Error)
{
cout<<WSAGetLastError()<<endl;//分号也没有
}
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)
#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;
}
大哥,你注意一下大小写行不?
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
error C2660是指函数调用参数有问题