我开始了一个学校项目,当我开始编程的时候,我遇到了一些问题!这是我的代码(远未完成):
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD( 2, 2 );
int err = WSAStartup( wVersionRequested, &wsaData );
SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
struct addrinfo *info;
int ok = getaddrinfo("www.bt.se","80",NULL,&info);
if(ok!=0) {
WCHAR * error = gai_strerror(ok);
printf("%s\n",error);
} else while(info->ai_family != AF_INET && info->ai_next != NULL)
info = info->ai_next;
ok = connect(s, info->ai_addr, info->ai_addrlen);
char * message = "GET / HTTP/1.1\r\nHOST: www.bt.se\r\n\r\n";
ok = send(s,message,strlen(message),0);
WSACleanup();包含的文件是"winsock2.h“和"Ws2tcpip.h"!当我试图编译程序时,我得到了以下输出:
--开始构建:项目: Ovning1,配置:调试Win32
Ovning.c
C:\文档和设置\fredrich\桌面\lokala n tverk\ovning1\ovning1\ovning.c(16):警告C4013:'printf‘未定义;假设外部返回int
C:\文档和设置\fredrich\桌面\lokala n tverk\ovning1\ovning1\ovning.c(22):错误C2143:语法错误:缺失';‘类型’之前
C:\文档和设置\fredrich\桌面\lokala n tverk\ovning1\ovning1\ovning.c(23):错误C2065:'message‘:未声明的标识符
c:\documents和设置\fredrich\桌面\lokala n tverk\ovning1\ovning1\ovning.c(23):警告C4047:“函数”:“const*”在从“int”间接指向的级别上有所不同
C:\文档和设置\fredrich\桌面\lokala n tverk\ovning1\ovning1\ovning.c(23):警告C4024:'send‘:正式和实际参数2的不同类型
C:\文档和设置\fredrich\桌面\lokala n tverk\ovning1\ovning1\ovning.c(23):错误C2065:'message‘:未声明的标识符
c:\documents和设置\fredrich\桌面\lokala n tverk\ovning1\ovning1\ovning.c(23):警告C4047:“函数”:“const*”在从“int”间接指向的级别上有所不同
C:\文档和设置\fredrich\桌面\lokala n tverk\ovning1\ovning1\ovning.c(23):警告C4024:'strlen‘:正式参数和实际参数1的不同类型
==========构建:0成功,1失败,0最新版本,0跳过==========
谁知道会发生这些错误吗?
发布于 2011-02-07 19:18:50
你没有把stdio.h包括在内吗?
发布于 2011-02-07 21:10:53
error C2143:语法错误:缺少“;”在“类型”之前
如果这是C而不是C++,则不能在块中间声明char * message。所有变量声明必须位于块的开头。(就在{之后)
发布于 2011-02-07 19:20:27
应该在platform SDK http://msdn.microsoft.com/en-us/library/ms740673.aspx中。
编辑:尽管就像其他答案说的-这不是问题所在
https://stackoverflow.com/questions/4925375
复制相似问题