Milan Roubal :c-cko socket(), HTTP, POST poziadavok

Robert Vojta robert na v0jta.net
Pátek Únor 8 20:47:01 CET 2002


  ftp://atrey.karlin.mff.cuni.cz/pub/rfc/www/ a nebo si to opravte podle
tohoto ...


#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/param.h>

#define BUFFER_SIZE 1024
#define HOST_IP     "127.0.0.1"
#define PORT        80
#define REQUEST \
\
"POST http://localhost/~vojta/a.php HTTP/1.1\n" \
"Host: localhost\n" \
"Content-Type: application/x-www-form-urlencoded\n" \
"Content-Length: 12\n\n" \
"jmeno=Robert\n"

int
main (int argc, char *argv[])
{
	struct sockaddr_in sa;
	int s = -1;
	char buffer[BUFFER_SIZE];

	bzero(buffer, sizeof(buffer));

	bzero((void *)&sa, sizeof(sa));
	sa.sin_family = AF_INET;
	sa.sin_addr.s_addr = inet_addr(HOST_IP);
	sa.sin_port = htons(PORT);

	if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
	{
		fprintf(stderr, "socket() failed\n");
		return -1;
	}

	if (connect(s, (struct sockaddr *)&sa, sizeof(sa)) < 0)
	{
		fprintf(stderr, "connect() failed\n");
		return -1;
	}

	write(s, REQUEST, sizeof(REQUEST));
	read(s, buffer, BUFFER_SIZE);
	close(s);

	printf(buffer);

	return 0;
}

-- 
Robert V0jta

  The abuse of greatness is when it disjoins remorse from power
                                      -- William Shakespeare, "Julius Caesar"


Další informace o konferenci Linux