Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <errno.h>
- #include <string.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <err.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netdb.h>
- #include <arpa/inet.h>
- /* "BSIZE" adalah ukuran buffer kita menggunakan untuk membaca dari soket. */
- #define BSIZE 0x1000
- /* Dapatkan halaman web dan mencetaknya ke output standar. */
- static void get_page (int s, const char * host, const char * page)
- {
- char * msg;
- /* "Format" adalah format permintaan HTTP kita mengirim ke server web. */
- const char * format =
- "GET /%s HTTP/1.0\r\nHost: %s\r\nUser-Agent: fetch.c\r\n\r\n";
- asprintf (& msg, format, page, host);
- send (s, msg, strlen (msg), 0);
- while (1) {
- int bytes;
- char buf[BSIZE+10];
- bytes = recvfrom (s, buf, BSIZE, 0, 0, 0);
- if (bytes == -1) {
- fprintf (stderr, "%s\n", strerror(errno));
- exit (1);
- }
- buf[bytes] = '\0';
- printf ("%s", buf);
- if (bytes == 0) {
- break;
- }
- }
- free (msg);
- }
- int main ()
- {
- struct addrinfo hints, *res, *res0;
- int error;
- /* "S" adalah file descriptor dari soket. */
- int s;
- // char npm[10];
- // printf ("Masukkan Npm Anda :");
- // scanf ("%s", npm);
- /* Dapatkan salah satu halaman web di sini. */
- const char * npm = ("13110921");
- const char * host = ("student.gunadarma.ac.id");
- memset (&hints, 0, sizeof(hints));
- /* Jangan menentukan jenis koneksi internet. */
- hints.ai_family = PF_UNSPEC;
- hints.ai_socktype = SOCK_STREAM;
- error = getaddrinfo (host, "http", & hints, & res0);
- if (error) {
- fprintf (stderr, "%s\n", gai_strerror(error));
- exit (1);
- }
- s = -1;
- for (res = res0; res; res = res->ai_next) {
- s = socket (res->ai_family, res->ai_socktype, res->ai_protocol);
- if (s < 0) {
- fprintf (stderr, "socket: %s\n", strerror (errno));
- exit (1);
- }
- if (connect(s, res->ai_addr, res->ai_addrlen) < 0) {
- fprintf (stderr, "connect: %s\n", strerror (errno));
- close(s);
- exit (1);
- }
- break;
- }
- if (s != -1) {
- get_page (s, host, "");
- }
- freeaddrinfo (res0);
- return 0;
- }
Add Comment
Please, Sign In to add comment