Join us at IRC!
The important thing is not to stop questioning. - Albert Einstein
Wednesday, May 23, 2012
Navigation
Members Online
Total Online: 33
Web Spiders: 16
Guests Online: 32
Members Online: 1

Registered Members: 70170
Newest Member: bahmx
Latest Articles
View Thread

HellBound Hackers | Computer General | Programming

Author

c++ sockets, POST'ing

beetleflux
Member

Posts: 22
Location: Sweden
Joined: 23.04.05
Rank:
Wiseman
Warn Level: 40
Posted on 31-01-06 23:12
#include <stdio.h>
#include "winsock2.h"
#include <iostream>
#include <fstream>
#include <windows.h>


using namespace std;
int main(int argc, char *argv[]) {

// MessageBox(NULL, "hallo", "socketIndication", MB_OK);

// Initialize Winsock.
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf("Error at WSAStartup()\n");

// Create a socket.
SOCKET m_socket;
m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

if ( m_socket == INVALID_SOCKET ) {
printf( "Error at socket(): %ld\n", WSAGetLastError() );
WSACleanup();
return 1;
}

// Connect to a server.


LPHOSTENT hostEntry;
hostEntry = gethostbyname(argv[1]);

sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list); // inet_addr("127.0.0.1");
clientService.sin_port = htons( 80 );

if ( connect( m_socket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
printf( "Failed to connect.\n" );
WSACleanup();
return 1;
}

// Send and receive data.

if(argc!=3)
{
cout<<"Usage:connect_web www.sau.no /index.html";
return 1;
}

char sendbuf[2000]="POST ";

strcat(sendbuf, argv[2]);
strcat(sendbuf, " HTTP/1.1\r\nHost: ");
strcat(sendbuf, argv[1]);
strcat(sendbuf, "\r\nUser-Agent: who_cares?\r\n");
strcat(sendbuf, "Referer: google.com\r\n");
strcat(sendbuf, "Connection: close\r\n");

strcat(sendbuf, "Content-Type: application/x-www-form-urlencoded\r\n");
strcat(sendbuf, "Content-Length: 17\r\n");

strcat(sendbuf, "from=faen&submit=\r\n\r\n");
// strcat(sendbuf, "submit=\r\n\r\n");


cout<< sendbuf << "\n";
char recvbuf[100];
int bytesRecv;

send( m_socket, sendbuf, strlen(sendbuf), 0 );


while(bytesRecv!=SOCKET_ERROR)
{
bytesRecv=recv( m_socket, recvbuf, strlen(recvbuf), 0 );
if(!bytesRecv)
{ break; }


cout.write(recvbuf, strlen(recvbuf));
}

WSACleanup();
return 1;
}


Why isnt it working? It should work.

EDIT: Damn smilies
[edit Grind]No smileys[/edit]

Edited by on 16-03-06 00:00
Author

RE: c++ sockets, POST'ing

thomasantony
Member

Posts: 52
Location:
Joined: 19.11.05
Rank:
Monster
Posted on 02-02-06 15:16
Hey,
I had this prob when I was sending data with POST in PHP. You need the two \r\n 's after the CONTENT-LENGTH and NOT after the content. So the code would be:

....
strcat(sendbuf, "Content-Length: 17\r\n\r\n");
strcat(sendbuf, "from=faen&submit=\r\n\r\n");
....

I think that should work. BTW, you just check the 'disable smileys' checkbox when posting the message to disable the smileys like I am doing.

Thomas
Author

RE: c++ sockets, POST'ing

beetleflux
Member

Posts: 22
Location: Sweden
Joined: 23.04.05
Rank:
Wiseman
Warn Level: 40
Posted on 15-03-06 22:40
Thank you so much, you have no idea of how much time i've spent finding it out.
Guest
Username

Password

Remember Me


Bookmark This Page
Affiliates
Adverts

 

 

Links
By using, viewing or obtaining any information contained on this site, you agree to the disclaimer.

© HellBound Hackers 2008- 2009. Since 3rd December 2004.