荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (UNIX+C+XML+?? 傻了?), 信区: Linux
标  题: httptest.c(转载)                       guru (转寄)[转载]
发信站: 荔园晨风BBS站 (Thu Apr 25 10:25:46 2002), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@apue.dhs.org 所发表 】
发信人: guru (好读书,不求甚解), 信区: UNP
标  题: httptest.c(转载)
发信站: UNIX编程 (2001年09月19日18:56:48 星期三), 站内信件

>>from linuxforum.net
/**
 * httptest.c
 *
 * This simple test program is for linuxforum.net only
 * - Edward Jiang <edward.jiang@oracle.com>
 */
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <netdb.h>
int main(int argc, char *argv[])
{
    struct sockaddr_in server;
    struct hostent *ent;
    int sockfd;
    unsigned char buffer[2048];
    int i, port=80;
    // We may assume that port is default to 80
    if (argc<2 || argc>4) {
        fprintf(stderr, "Usage: %s <server_host_name> <URI>[Server Port]\n",
argv[
0]);
        exit(-1);
    }
    else if (argc==4) {
        port = atoi(argv[3]);
    }
    // Resolve IP address from name
    if ((ent = gethostbyname(argv[1]))==NULL) {
        perror("gethostbyname error");
        exit(-2);
    }
    server.sin_family = AF_INET;
    server.sin_port = htons(port);
    memcpy(&server.sin_addr, ent->h_addr, sizeof(struct in_addr));
    // Time to create socket
    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0))<0) {
        perror("socket error");
        exit(-3);
    }
    // Time to make connection
    if ((i=connect(sockfd, &server, sizeof(struct sockaddr_in)))<0) {
        perror("connect error");
        exit(-4);
    }
    // Now time to transport, we use simplist HTTP/1.1 compliant requesthere
    i = sprintf(buffer, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection:close\r\n\r\
n", argv[2], ent->h_name);
    write(sockfd, buffer, i);
    while ((i=read(sockfd, buffer, 2048))>0) {
        write(0, buffer, i);
    }
    // Close connection, because we use "Connection: close" in request, soserve
r closed connection already
    close(sockfd);
}

--
Target Locked:Guru In Darkness.
我只是一只静静卧着的狮子。。。
※ 修改:·guru 於 09月19日19:45:53 修改本文·[FROM: 202.114.36.179]
※ 来源:·UNIX编程 www.tiaozhan.com/unixbbs/·[FROM: 202.114.36.179]
--
※ 转寄:·UNIX编程 apue.dhs.org·[FROM: 210.39.3.50]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店