想试验一下新学的关于winsock编程的初级知识,结果遇到了一堆问题。问题一:我在使用CString时需要包含什么头文件?我假如建立一个win32 console app的工程是不是不能用呢?我包含stdafx.h系统提示找不到。想运行我的程序应该建立什么工程啊??我试了好多都不行,应该用mfc app?
问题二:假如我想用CSocket这各类,又需要包含什么头文件呢?还用WSAStartup这个吗?就是初始化吗?
问题三:我建立win32 console app工程时,选择了支持MFC那项,然后把我的代码加到后面,结果出现了e:\项目\程序\shiyan2\shiyan2.cpp(100) : fatal error C1010: unexpected end of file while looking for precompiled header directive
这个错误提示?
大家能帮我看看,问这个问题倾家荡产了,以下付代码,看看有错没?----------------------------------------------------------------------------------------#include "Winsock2.h"
#include "stdio.h"
// #include "stdafx.h" 这个有问题void main(){WSADATA wsaData;
WORD version = MAKEWORD(2,0);
int ret =WSAStartup(version,&wsaData);
if(ret!= 0)
TRACE("Initilize Error!\n");
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("222.77.186.154");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(80);
ret=0;
ret=connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//连接我设定的一个网站
if(ret=SOCKET_ERROR)
{
TRACE("Connect Error!\n");
return;
}
CString strSend;
char szRead[1025];//发送请求
strSend = "GET /upload/video/beili_002.avi HTTP/1.1\r\n";
strSend+= "Host: www.dingbeili.com\r\n";
strSend+= "Accept: */*\r\n";
strSend+= "Pragma: no-cache\r\n";
strSend+= "Cache-Control: no-cache\r\n";
strSend+= "Connection: close\r\n";
strSend+= "\r\n";
ret=0;
char* buf=strSend.GetBuffer(0);
ret= send(sockClient,buf,strSend.GetLength(),0);
if(ret!= strSend.GetLength())
{
TRACE("send data error!\n");
return;
}//接受反馈信息
ret=0;
ret=recv(sockClient,szRead,1025,0);
if(ret=0){
TRACE("recv data error!\n");
return;
}szRead[ret]='\0';printf("\n%s\n",szRead);}
问题二:假如我想用CSocket这各类,又需要包含什么头文件呢?还用WSAStartup这个吗?就是初始化吗?
问题三:我建立win32 console app工程时,选择了支持MFC那项,然后把我的代码加到后面,结果出现了e:\项目\程序\shiyan2\shiyan2.cpp(100) : fatal error C1010: unexpected end of file while looking for precompiled header directive
这个错误提示?
大家能帮我看看,问这个问题倾家荡产了,以下付代码,看看有错没?----------------------------------------------------------------------------------------#include "Winsock2.h"
#include "stdio.h"
// #include "stdafx.h" 这个有问题void main(){WSADATA wsaData;
WORD version = MAKEWORD(2,0);
int ret =WSAStartup(version,&wsaData);
if(ret!= 0)
TRACE("Initilize Error!\n");
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("222.77.186.154");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(80);
ret=0;
ret=connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//连接我设定的一个网站
if(ret=SOCKET_ERROR)
{
TRACE("Connect Error!\n");
return;
}
CString strSend;
char szRead[1025];//发送请求
strSend = "GET /upload/video/beili_002.avi HTTP/1.1\r\n";
strSend+= "Host: www.dingbeili.com\r\n";
strSend+= "Accept: */*\r\n";
strSend+= "Pragma: no-cache\r\n";
strSend+= "Cache-Control: no-cache\r\n";
strSend+= "Connection: close\r\n";
strSend+= "\r\n";
ret=0;
char* buf=strSend.GetBuffer(0);
ret= send(sockClient,buf,strSend.GetLength(),0);
if(ret!= strSend.GetLength())
{
TRACE("send data error!\n");
return;
}//接受反馈信息
ret=0;
ret=recv(sockClient,szRead,1025,0);
if(ret=0){
TRACE("recv data error!\n");
return;
}szRead[ret]='\0';printf("\n%s\n",szRead);}
我能不能在win32 console离实现我上面的程序呢?应该怎么做?
if(ret=SOCKET_ERROR) ===>>> if(ret == SOCKET_ERROR)
if(ret=0){ =====>>>> if(ret == 0){另外程序里使用了MFC类,
1。在头部增加#include "AFXWIN.H"(第一行),
2。#include "stdafx.h" 去掉也罢
3。Project->settings->Use MFC in a Shared DLL
4。编译运行成功(已测试通过能收到反馈信息)