애드센스4



Guile Scheme 으로 웹 사이트 접속하기 시스템TIP

예제 소스

(use-modules (ice-9 rdelim))

(let ((s (socket PF_INET SOCK_STREAM 0)))
  (connect s AF_INET (car (vector-ref (gethost "www.egloos.com") 4)) 80)
;;  (connect s AF_INET (inet-aton "127.0.0.1") 80)
  (display "GET / HTTP/1.0\r\n\r\n" s)

  (do ((line (read-line s) (read-line s)))
      ((eof-object? line))
    (display line)
    (newline)))


------
(use-modules (ice-9 rdelim))

(define *http-default-port* 80)
(define *http-default-version* "HTTP/1.0")
(define *http-default-url* "/")

;; HEAD / HTTP/1.0
;; example : (http-head "www.yahoo.com")
(define (http-head host . rest) ;; port, url, version
  (if (null? host) #f
      (let* ((s (socket PF_INET SOCK_STREAM 0))
        (http-method "HEAD")
        (port (if (null? rest) *http-default-port* (car rest)))
        (url  (if (null? rest) *http-default-url*
              (if (null? (cdr rest)) *http-default-url*
              (cadr rest))))
        (ver  (if (null? rest) *http-default-version*
              (if (null? (cdr rest)) *http-default-version*
              (if (null? (cddr rest)) *http-default-version*
              (caddr rest)))))
        (str (string-append http-method " " url " " ver "\r\n\r\n")))
    (connect s AF_INET (car (vector-ref (gethost host) 4)) port)
    (display str s)
   
    (do ((line (read-line s) (read-line s)))
        ((eof-object? line))
      (display line)
      (newline)))))


;; GET / HTTP/1.0
;; example : (http-get "www.yahoo.com")
(define (http-get host . rest) ;; port, url, version
  (if (null? host) #f
      (let* ((s (socket PF_INET SOCK_STREAM 0))
            (http-method "GET")
            (port (if (null? rest) *http-default-port* (car rest)))
            (url  (if (null? rest) *http-default-url*
                     (if (null? (cdr rest)) *http-default-url*
                         (cadr rest))))
            (ver  (if (null? rest) *http-default-version*
                     (if (null? (cdr rest)) *http-default-version*
                         (if (null? (cddr rest)) *http-default-version*
                         (caddr rest)))))
            (str (string-append http-method " " url " " ver "\r\n\r\n")))
        (connect s AF_INET (car (vector-ref (gethost host) 4)) port)
        (display str s)

        (do ((line (read-line s) (read-line s)))
            ((eof-object? line))
          (display line)
          (newline)))))


트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://swbae.egloos.com/tb/1588968 [도움말]

덧글

  • fullc0de 2007/06/21 14:17 # 답글

    ㅎㅎ 학교 다닐때 인공지능 시간에 스킴 프로그래밍 해본 후로 오랜만에 느껴보는 코드네요 ㅎㅎ
댓글 입력 영역


애드센스7