为什么会出现这样的错误: error C2065: 'WSAStratup' : undeclared identifier ,求解释,谢谢!
星星相映 2014-02-20 10:15:25 //Echo client
#include <iostream>
#include <stdio.h>
#include <winsock2.h>
using namespace std;
#pragma comment(lib, "ws2_32") //Winsock 使用的库函数, #pragma 是在目标文件或可执行文件中放入一个注释记录
#define ECHO_DEF_PORT 7 //连接的默认端口
#define ECHO_BUF_SIZE 256 //缓冲区的大小
int main (int argc,char * * argv) //argc是非负整数,argv[0]是程序的名字,argv[1]~argv[argc]是程序的参数
{
WSADATA wsa_data;
SOCKET echo_soc =0; //socket句柄
struct sockaddr_in serv_addr; //服务器地址
unsigned short port=ECHO_DEF_PORT;
int result=0, send_len=0;
char *test_data= "Hello World!" ,recv_buf[ECHO_BUF_SIZE];
if(argc<2) //检查命令行参数,一般至少有2个(程序的名字,服务器的地址,服务器的端口号,没有时为默认端口号)
{
cout<<"input server_address[port]"<<argv[0]<<endl;
return -1;
}
if(argc>=3)
port=atoi(argv[2]);
WSAStratup(MAKEWORD(2,0), &wsa_data) ; //初始化Winsock资源
send_len =strlen(test_data);
//服务器地址
serv_addr.sin_family= AF_INET; //标识internet地址
serv_addr.sin_port=htons(port); //16位的端口号
serv_addr.sin_addr.s_addr =inet_addr(argv[1]); //服务器的地址
if(serv_addr.sin_addr.s_addr=INADDR_NONE)
{
cout<<"[ECHO] invalid address "<<endl;
return -1;
}
echo_soc =socket (AF_INET, SOCK_STREAM, 0); //创建socket
result= connect(echo_soc, (struct sockaddr * )&serv_addr, sizeof(serv_addr)); //句柄;服务器的地址;地址结构的长度
if(result=0) //连接成功
{
result=send( echo_soc, test_data, send_len, 0); //句柄;数据缓冲区;协议数据的长度; 。
result=recv( echo_soc, recv_buf, ECHO_BUF_SIZE,0);
}
if(result>0)
{
recv_buf[result]=0;
cout<<"[ECHO Client] receives "<<recv_buf <<endl;
}
else
cout<<"[ECHO Client] error"<<WSAGetLastError()<<endl;
closesocket(echo_soc);
WSACleanup();
return 0;
}