Автор: chill
Дата: 02-11-12 10:21
localhost написа:
> chill: бъди пич, кви са тия wget, curl ...
>
>
> $ telnet download.cdn.mozilla.net 80
>
> GET /pub/mozilla.org/firefox
> /releases/16.0.2/linux-i686/en-US/firefox-16.0.2.tar.bz2
>
Па то ако съм пич, ще го направя така:
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
#define S "GET /pub/mozilla.org/firefox/releases/16.0.2/linux-i686/en-US/firefox-16.0.2.tar.bz2"
char buf [10240];
int
main ()
{
int fd, n;
struct sockaddr_in addr;
struct hostent *srv;
srv = gethostbyname ("download.cdn.mozilla.net");
memset (&addr, 0, sizeof (addr));
addr.sin_family = AF_INET;
memcpy (&addr.sin_addr.s_addr, srv->h_addr, srv->h_length);
addr.sin_port = htons (80);
fd = socket (AF_INET, SOCK_STREAM, 0);
connect (fd, &addr, sizeof (addr));
write (fd, S, sizeof (S));
while ((n = read (fd, buf, sizeof buf)) > 0)
write (1, buf, n);
close (fd);
return 0;
}
|