folder Tahribat.com Forumları
linefolder C - C++
linefolder (C) İndex İsteyen C Kodu (Socket Programlama)



(C) İndex İsteyen C Kodu (Socket Programlama)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ByCodeC
    ByCodeC's avatar
    Kayıt Tarihi: 18/Ağustos/2007
    Erkek

    yazdıgınız adresten index sayfasını isteyen C socket programlama örneğidir...

     

    screen%20shot

     

     

     

    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

     

     

     

    int socket_recv(SOCKET ss,char *buf);
    int socket_send(SOCKET ss,char *buf);
    SOCKET connect_socket(char *adres,unsigned int port,int *en);
    int main(void)

    {
    WSADATA wsadata;
            SOCKET s1;
            int en;
            char buf[450];
            char adres[50];
            char cmd[100];
            unsigned int port = 80;


        WSAStartup(MAKEWORD(2,0),&wsadata);
    //------------------------------------------------- baglantı saglamak

    printf("adres :");
    gets(adres);
    strcpy(cmd,"GET http://");
    strcat(cmd,adres);
    strcat(cmd," HTTP/1.0\n\n");
    printf("%s",cmd);

     

        s1 = connect_socket(adres,port,&en);
        if(en){
            printf("baglantI basarILI\n");
            socket_send(s1,cmd);
            socket_recv(s1,buf);
            puts(buf);
        }
        else {
            printf("baglantI basarIsIz\n");
        }

        WSACleanup();
        closesocket(s1);
    system("pause");
        return 0;
    }
    int socket_recv(SOCKET ss,char *buf)
    {
        memset(buf,'\0',500);
        if((recv(ss,buf,500,0)) ==-1){
            //puts("recv error \n");
            return 0;
        }
        else{
            return 1;
        }
    }
    int socket_send(SOCKET ss,char *buf)
    {
        if((send(ss,buf,strlen(buf),0)) == -1){
            //puts("send error!\n");
            return 0;
        }
        else{
            return 1;
        }
    }
    SOCKET connect_socket(char *adres,unsigned int port,int *en)
    {

        struct hostent *he;
        struct sockaddr_in their_addr;
        SOCKET sck;


        if((he = gethostbyname(adres)) == NULL){
            //puts("hostname error");
        }

        their_addr.sin_family = AF_INET;
        their_addr.sin_port = htons(port);
        their_addr.sin_addr = *((struct in_addr *)he->h_addr);
        memset(&(their_addr.sin_zero),'\0',8);

        if((sck = socket(AF_INET,SOCK_STREAM,0)) == -1){
              //  puts("socket error");
        }

        if((connect(sck,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))) == -1){

                *en = 0; //baglantı gerçekleştirilemedi
        }
        else{
                *en = 1; //basarılı;
        }

    return sck;
    }

     

     

     

     


    Game Developer
Toplam Hit: 2290 Toplam Mesaj: 1