Here is a program on windows
sockets, which is supposed to display HTML
code from port 80 of the requested ip
.
#define WIN32_LEAN_AND_MEAN #include <winsock2.h> #include <Ws2tcpip.h> #include <stdio.h> #include <stdlib.h> // Link with ws2_32.lib #pragma comment(lib, "Ws2_32.lib") #define DEFAULT_BUFLEN 32768 #define DEFAULT_PORT "80" int __cdecl main() { re: //---------------------- // Declare and initialize variables. WSADATA wsaData; int iResult; SOCKET ConnectSocket = INVALID_SOCKET; struct sockaddr_in clientService; char *sendbuf = "GET / HTTP/1.1\n\n"; char recvbuf[DEFAULT_BUFLEN]; int recvbuflen = DEFAULT_BUFLEN; //---------------------- // Initialize Winsock iResult = WSAStartup(MAKEWORD(2,2), &wsaData); if (iResult != NO_ERROR) { printf("WSAStartup failed: %d\n", iResult); return 1; } //---------------------- // Create a SOCKET for connecting to server ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { printf("Error at socket(): %ld\n", WSAGetLastError() ); WSACleanup(); return 1; } //---------------------- // The sockaddr_in structure specifies the address family, // IP address, and port of the server to be connected to. clientService.sin_family = AF_INET; clientService.sin_addr.s_addr = inet_addr( "91.000.000.00" ); clientService.sin_port = htons( 80 ); //---------------------- // Connect to server. iResult = connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ); if ( iResult == SOCKET_ERROR) { closesocket (ConnectSocket); printf("Unable to connect to server: %ld\n", WSAGetLastError()); WSACleanup(); return 1; } // Send an initial buffer iResult = send( ConnectSocket, sendbuf, (int)strlen(sendbuf), 0 ); if (iResult == SOCKET_ERROR) { printf("send failed: %d\n", WSAGetLastError()); closesocket(ConnectSocket); WSACleanup(); return 1; } printf("Bytes Sent: %ld\n", iResult); // shutdown the connection since no more data will be sent iResult = shutdown(ConnectSocket, SD_SEND); if (iResult == SOCKET_ERROR) { printf("shutdown failed: %d\n", WSAGetLastError()); closesocket(ConnectSocket); WSACleanup(); return 1; } // Receive until the peer closes the connection do { iResult = recv(ConnectSocket, recvbuf, recvbuflen, 0); if ( iResult > 0 ) printf("Bytes received: %d\n", iResult); else if ( iResult == 0 ) { printf("Connection closed\n"); printf(recvbuf);} else printf("recv failed: %d\n", WSAGetLastError()); } while( iResult > 0 ); // cleanup closesocket(ConnectSocket); WSACleanup(); system("pause"); goto re; return 0; }
Not only with every 5-10 attempt comes the code. What is the problem?
upd
1Ѓ ^ EE ‡ rG0Џ Уфд‚Aо9KПIґ # {Р M} ЏоЭ-ЮЫМЯЎ ° чѓ ™ = {† ЬШwх “ЅДѕ (Cz)·Іґd [я ˜ЊFї•J«мЭC^ IQP‹e Й™Є№АЌЮ€Ы•ј'Э€Q/Dvc AЉ »аm+Ґќl‹ з µ%5_hX‰' xЁ ЧЉ‰ЏЏ Ш|пЂИЌg @^т@ГЧ ?AYЌђЫцЧUct‰ I&«Eђ1mzPЭ* jr …‡ЗVs е^B®‹ ЃТЅ+o~# UтK|r/В7b) ь)ћџKЉ*ЦD0Uџьт ЛР€р \!± vkю А ›Ј«aќЙV EЮєuRyМ@QБ02F — ˜9U0т D §^Ы њЎЛцДЭYYZЙ$УќQ Чvqйґ/Ћ—МСоH»2цJ3цвк“ЙЂћд8(}Оє Х ·№°“ющ8 ЌIТhMАhај® ї a› ћЬ?ї@jrЬёМ< Ъ ћіэъEо QjЬвKмМFзEOфѕ9±bNOс.A<ІяоЗџ|xзГ»Ц¤фЮ=М'Vњp~CДC'С O& и]®±‡РKШ Рh«ѓљйзѕµ-Г ›GЌьR 4шпрСВн'G«Qы<}РЕ…ЫЦ/ф 0r‚3АR"ёїАM*˜
њЕь5} f, ‡ = Uђ'F („ „tY} AND 4H & ZiYoЈl [> Ъя¬ ќЗ« Б ¤ Г. + @ ¬ і ›ѕ 3ЁTSVѓY © 1¦ & Y + Р Z kx¤X; IM"] ёe € Ќ_ • • њњњЌґґrЌfВ5 / ~ ЊёТЎ \ яJ¬lЇPS¬ђђђ! SHO:> b'ґT ^ ZShgshІVg ± HA №liShvћЇЇ RPD њ € МRЁDЈ шHPJ [Ґ-e »ґµmїq N / E (I› 9x — аЎ – с ™ F4% „7ЯЊТ Й9c 2 $ DKGYYmy, Mr— # z‹ 3 ”FF $‚ LNТГжРЄ8В fЗ¦Цс @ c ] Љі mnМЈы = ‰ а¤M) фІ ѓ{вАkl„ІЕp;рмзНzQ¦C ѕB ^л/Q'п – ќ‡КW ›t-ђчњП#)ФП;-!
> SE˜ "ЬОђВ-WP ... 0 Vж & KtLЅt t <F} F} ¶Z ‰ -˜rM Џ W 8 8p>) KtЋ $ & а‚1PЊўGщҐёэйэz4 ЅЅъЯ “ш
4 "a y yShchVЋdEЇg_'Suschxh'Ya | {n3 ‡ y} хh: ZяwwwыыЅЅwwЦЦ> Ї · Ђ ”H H" Ґ # OYљhy yy ± # у Oџ • 8 ЃЊ i [[S Sp% Ѓ ˜ u˜ Ї Ї Ї д ‹а В] Vа = fr XT н> F” ¦Xz ›P (cx shdDyaTs4Є |, XvKhK" YҐ3 ЧHLIN 3 iI ІIl е $ e-! Vе с ќЇ # џ ї ї џ џ џ џ e e e e e e e e e e e e e e e e e e e e e e e µ0gµ / = и'»{ъ‚_ѓ>ф®ќ‡U· ДЊрљП-ou =вЎчM®Й$И†Ц ЪC$мљ8фѓљ •0 dЉAф„g~јВѕ
О About mGeЊЃ (: пе? ІЏЄшжV п, Еf'ch љHo! ˜ E ps'L P ˜Öќ9® * k> GtTU6Rdech ‰ + el? Yuz