[英]Windows sockets problem!
我已經開始了一個學校項目,開始編程時遇到了一些問題! 這是我的代碼(遠遠沒有完成):
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:\\ documents and settings \\ fredrich \\ desktop \\ lokalanätverk\\ ovning1 \\ ovning1 \\ ovning.c(16):警告C4013:'printf'未定義; 假設extern返回int
c:\\ documents and settings \\ fredrich \\ desktop \\ lokalanätverk\\ ovning1 \\ ovning1 \\ ovning.c(22):錯誤C2143:語法錯誤:缺少';' 在“類型”之前
c:\\ documents and settings \\ fredrich \\ desktop \\ lokalanätverk\\ ovning1 \\ ovning1 \\ ovning.c(23):錯誤C2065:'message':未聲明的標識符
c:\\ documents and settings \\ fredrich \\ desktop \\ lokalanätverk\\ ovning1 \\ ovning1 \\ ovning.c(23):警告C4047:'function':'const char *'的間接引用級別與'int'不同
c:\\ documents and settings \\ fredrich \\ desktop \\ lokalanätverk\\ ovning1 \\ ovning1 \\ ovning.c(23):警告C4024:“發送”:正式和實際參數2的不同類型
c:\\ documents and settings \\ fredrich \\ desktop \\ lokalanätverk\\ ovning1 \\ ovning1 \\ ovning.c(23):錯誤C2065:'message':未聲明的標識符
c:\\ documents and settings \\ fredrich \\ desktop \\ lokalanätverk\\ ovning1 \\ ovning1 \\ ovning.c(23):警告C4047:'function':'const char *'的間接引用級別與'int'不同
c:\\ documents and settings \\ fredrich \\ desktop \\ lokalanätverk\\ ovning1 \\ ovning1 \\ ovning.c(23):警告C4024:'strlen':正式和實際參數1的不同類型
==========構建:0成功,1失敗,0最新,跳過0 ==========
任何人都知道發生這些錯誤嗎?
您是否未包含stdio.h,該文件中是否包含printf斜度
錯誤C2143:語法錯誤:缺少';' 在“類型”之前
如果這是C而不是C ++,則不能在塊中間聲明char * message
。 所有變量聲明必須在塊的開頭。 (在{
)。
應該在平台SDK中http://msdn.microsoft.com/en-us/library/ms740673.aspx
編輯:雖然如其他答案所說-這不是問題
底部顯示0成功,1失敗。 這僅表示一個文件無法構建。 向下掃描右側,ovning.c提供了錯誤和警告。 首先查看每個錯誤,然后進行修復。
第一個錯誤是printf未定義。 顯然,您有錯別字,缺少功能或缺少包含。 正如Tanuj所說,您可能要在stdio.h中使用printf,因此添加include語句。
接下來,您將收到兩條有關未聲明標識符的消息。 再次,可能缺少包含。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.