关闭和无效错误 [英] CLOSE and VOID ERROR
本文介绍了关闭和无效错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我遇到了这两个错误!我正在使用Visual Studio 2010和Win7.
IntelliSense:标识符未定义
IntelliSense:类型的值不能用于初始化类型的实体
I''m getting these two errors! I''m using Visual Studio 2010 and Win 7.
IntelliSense: identifier is undefined
IntelliSense: a value of type cannot be used to initialize an entity of type
#include <stdio.h>
#include <string.h>
//#include
#include <stdafx.h>
//#include
//#include <netdb.h>
#include <winsock2.h>
#include <stdlib.h>
#include <ws2tcpip.h>
static const char *BODY = "SomeVariable1=foo&SomeVariable2=bar";
static const char *HEADERS = "POST /test.php HTTP/1.0\r\n"
"Host: 192.168.168.40\r\n"
"Accept: */*\r\n"
"Connection: keep-alive\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Content-Length: ";
int main()
{
struct addrinfo req, *res;
memset(&req, 0, sizeof(req));
req.ai_family = AF_UNSPEC;
req.ai_socktype = SOCK_STREAM;
if (getaddrinfo("192.168.168.40", "http", &req, &res) < 0)
{
perror("getaddrinfo");
return -1;
}
int s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (s < 0)
{
perror("socket");
return -1;
}
if (connect(s, res->ai_addr, res->ai_addrlen) < 0)
{
perror("connect");
close(s);
return -1;
}
char *buffer = malloc(strlen(BODY) + strlen(HEADERS) + 256);
sprintf(buffer, "%s%d\r\n\r\n%s\r\n\r\n", HEADERS, strlen(BODY), BODY);
if (send(s, buffer, strlen(buffer), 0) < 0)
{
perror("send");
}
else
{
char recvbuffer[8192] = { 0 };
int recvcount = 0;
recvcount = recv(s, recvbuffer, sizeof(recvbuffer), 0);
while (recvcount > 0)
{
printf("Received: %s", recvbuffer);
recvcount = recv(s, recvbuffer, sizeof(recvbuffer), 0);
}
printf("\n");
}
free(buffer);
close(s);
return 0;
}
推荐答案
我认为您缺少类型转换char* buffer = (char*)malloc(...);
I think you''re missing the typecast char* buffer = (char*)malloc(...);
这篇关于关闭和无效错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文