2
我確定我的程序已經通過url從服務器獲得了ip。 當我發送GET請求時,雖然它已成功發送,但無法獲得響應。我不確定服務器是否已收到我的請求,我應該如何檢查服務器是否收到我的請求? 連接將在發送請求並等待一段時間後關閉。 「recv」函數將響應0,並且緩衝區什麼都不收。無法從http服務器獲取winsock2的響應包
我不知道我的「sendbuf = GET/HTTP/1.1 \ r \ n \ r \ n」是否有錯誤。 我應該使用1.1還是1.0?
char *sendbuf = "GET/HTTP/1.1\r\n\r\n";
//to get the ip from DNS server
pHostEnt = gethostbyname("www.google.com.tw");
ppaddr = (int**)pHostEnt->h_addr_list;
sockAddr.sin_addr.s_addr = **ppaddr;
printf("%s",inet_ntoa(sockAddr.sin_addr));
//to create the socket and connect to it
memset(&serverAddress, 0, sizeof(serverAddress));
serverAddress.sin_family = AF_INET;
serverAddress.sin_addr.s_addr = inet_addr(inet_ntoa(sockAddr.sin_addr));
serverAddress.sin_port = htons(SERVER_PORT);
serverSocket = socket(AF_INET, SOCK_STREAM, 0);
connect(serverSocket, (struct sockaddr *)&serverAddress, sizeof(serverAddress));
//send request
int iResult = send(serverSocket, sendbuf, (int)strlen(sendbuf), 0);
//get response
if (bytesRead=recv(serverSocket, buf, MAX_SIZE, 0) < 0)
printf("Error with send()");
else
printf("Successfully sent html fetch response");
謝謝你給了我新的方向調試。但發送仍然返回-1。(發送錯誤)我將繼續嘗試解決這些問題。 – MaryHo
當send()返回-1時返回什麼'WSAGetLastError()? –