sock program til at kalde hjemmeside adresse
System: Centos6 som kører på vmware under windows xpHar fundet dette program, og kunne godt tænke mig at bruge det til at slå en bestemt hjemmeside adresse op, 1 gang hvert minut.
Men kan ikke helt få det til at fungere.
Selve programmet:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
void error(const char *msg)
{
perror(msg);
exit(0);
}
int main(int argc, char *argv[])
{
int sockfd, portno, n;
struct sockaddr_in serv_addr;
struct hostent *server;
char buffer[256];
/* if (argc < 3) {
fprintf(stderr,"usage %s hostname port\n", argv[0]);
exit(0);
}
*/
portno = 80; // atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
server = gethostbyname("google.dk"); // (argv[1]);
if (server == NULL) {
fprintf(stderr,"ERROR, no such host\n");
exit(0);
}
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr,
(char *)&serv_addr.sin_addr.s_addr,
server->h_length);
serv_addr.sin_port = htons(portno);
if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
error("ERROR connecting");
printf("Please enter the message: ");
bzero(buffer,256);
fgets(buffer,255,stdin);
printf("%s\n", buffer);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
printf("Sendt");
bzero(buffer,256);
n = read(sockfd,buffer,255);
if (n < 0)
error("ERROR reading from socket");
printf("%s\n",buffer);
close(sockfd);
return 0;
}
Fejlen kommer når har indtaste det jeg vil sende til serveren.
f.eks.: GET index.php http/1.1\n Host:google.dk\n\n\n
eller andet med: GET/POST XXX
Så låser den i write funktionen.
skriver jeg f.eks: google.dk
svare den:
-------------------
SendtHTTP/1.0 400 Bad Request
Content-Type: text/html; charset=UTF-8
Content-Length: 925
Date: Mon, 20 Feb 2012 20:22:58 GMT
Server: GFE/2.0
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-sc
-----------------------
stopper så her hvor bufferen nok er fuld (256 char)
Ved ikke om det er min egen computer der svare eller google. (har prøvet til flere domæner hvor svaret var det samme så det er nok min egen computer der svare)
Hvad skal jeg skrive for at den henter siden?
Eller er der en som har noget kode der kan bruges?