Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Connect tới webserver và lấy nội dung website, giúp em

  1. #1
    Ngày gia nhập
    04 2008
    Bài viết
    10

    Mặc định Connect tới webserver và lấy nội dung website, giúp em

    Em thử dùng socket connect qua cổng 80 nhưng ko thể connect được.
    Mong mọi người giúp đỡ cách lấy nội dung trang web bằng c với ..

  2. #2
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Code kia của bạn đâu ? Đưa tôi xem tại sao không connect được ?
    ttecak ?

  3. #3
    Ngày gia nhập
    04 2008
    Bài viết
    10

    Code:
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
        struct sockaddr_in sv_addr;
        char request[]="GET / HTTP/1.1";
        int sockfd;
        struct hostent *hp;
        int chr;
    
        fd_set test_set, ready_set;
    
        sockfd = socket(AF_INET, SOCK_STREAM, 0);
        bzero((char*)&sv_addr, sizeof(sv_addr));
        hp = gethostbyname("127.0.0.1");
        sv_addr.sin_family = AF_INET;
        sv_addr.sin_port = 80;
        memcpy(&sv_addr.sin_addr.s_addr, hp->h_addr, hp->h_length);
        int ret = connect(sockfd, &sv_addr, sizeof(sv_addr));
        printf("\n %d\n ", strlen(request));
        chr = 0;
        write(sockfd, &request, strlen(request));
        close(sockfd);
        return 0;
    }
    Biến ret khi chạy có giá trị là -1. Máy có cài webserver. Có làm 1 code chat client - server code cũng gần giống thế này, chạy tốt .. ko hiểu sao cái này ko chạy.

  4. #4
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Code:
     sockfd = socket(AF_INET, SOCK_STREAM, 0);
    Sao ở đây không có giao thức truyền nhận dữ liệu vậy ? Giá trị 0 đại diện cho cái gì ?
    ttecak ?

  5. #5
    Ngày gia nhập
    04 2008
    Bài viết
    10

    Tham khảo : http://shoe.bocks.com/net/
    http://stackoverflow.com/questions/2...redefined-port
    đều làm như vậy.

    Sửa :
    Code:
    sv_addr.sin_port = 80;
    Code:
    sv_addr.sin_port = htons(80);
    là chạy nà ^^! thật buồn cười .. mò mãi ..

    Code:
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
        struct sockaddr_in sv_addr;
        char request[]="GET /index.php HTTP/1.1\r\nHost: www.uploadanh.com\r\n\r\n";
        int sockfd;
        struct hostent *hp;
        char content[1000];
    
        fd_set test_set, ready_set;
    
        sockfd = socket(AF_INET, SOCK_STREAM, 0);
        bzero((char*)&sv_addr, sizeof(sv_addr));
        hp = gethostbyname("123.30.51.57");
        sv_addr.sin_family = AF_INET;
        sv_addr.sin_port = htons(80);
        memcpy(&sv_addr.sin_addr.s_addr, hp->h_addr, hp->h_length);
        int ret = connect(sockfd, &sv_addr, sizeof(sv_addr));
        printf("\n %d\n ", sockfd);
        write(sockfd, &request, strlen(request));
        int nbytes = read(sockfd, &content, 1000);
        printf("\n %s\n ", content);
        close(sockfd);
        return 0;
    }

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Mặc định Connect tới webserver và lấy nội dung website, giúp em

    Tôi thấy bạn làm mà bạn chẳng để ý tại sao nó lại như thế đúng không nhỉ ?

    Nếu về sau bug thì làm sao ? Chẳng có chỗ nào bug giống bạn thì lại mò lý thuyết lại từ đầu à ?

    The socket function creates a socket that is bound to a specific transport service provider.


    SOCKET WSAAPI socket(
    __in int af,
    __in int type,
    __in int protocol
    );

    Parameters
    protocol
    The protocol to be used. The possible options for the protocol parameter are specific to the address family and socket type specified. Possible values for the protocol are defined are defined in the Winsock2.h and Wsrm.h header files.

    On the Windows SDK released for Windows Vista and later,, the organization of header files has changed and this parameter can be one of the values from the IPPROTO enumeration type defined in the Ws2def.h header file. Note that the Ws2def.h header file is automatically included in Winsock2.h, and should never be used directly.

    If a value of 0 is specified, the caller does not wish to specify a protocol and the service provider will choose the protocol to use.

    When the af parameter is AF_INET or AF_INET6 and thetype is SOCK_RAW, the value specified for the protocol is set in the protocol field of the IPv6 or IPv4 packet header.

    The table below lists common values for the protocol although many other values are possible.

    protocol Meaning
    IPPROTO_TCP
    6
    The Transmission Control Protocol (TCP). This is a possible value when the af parameter is AF_INET or AF_INET6 and the type parameter is SOCK_STREAM.

    IPPROTO_UDP
    17
    The User Datagram Protocol (UDP). This is a possible value when the af parameter is AF_INET or AF_INET6 and the type parameter is SOCK_DGRAM.

    IPPROTO_RM
    113
    The PGM protocol for reliable multicast. This is a possible value when the af parameter is AF_INET and the type parameter is SOCK_RDM. On the Windows SDK released for Windows Vista and later, this value is also called IPPROTO_PGM.
    ttecak ?

Các đề tài tương tự

  1. Viết bài nội dung website
    Gửi bởi thanhtinhp2013 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 2
    Bài viết cuối: 03-09-2013, 01:44 PM
  2. [Help] Cần giúp đỡ về tạo website có game Hangman sử dung SQL Server Database
    Gửi bởi vunguyet trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 19-04-2013, 10:30 PM
  3. Cần giúp đỡ về lỗi connect cở sở dữ liêu
    Gửi bởi phuocbeo2102 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 8
    Bài viết cuối: 28-11-2011, 12:46 AM
  4. Simple WebServer C++ | Mã nguồn webserver đơn giản
    Gửi bởi zZKiddyZz trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 27
    Bài viết cuối: 24-12-2010, 05:54 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn