[Просто]PHP в C++(Сокеты)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by randman, 19 Mar 2011.

Thread Status:
Not open for further replies.
  1. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Сокеты в C++, Windows. Хотелось бы разобраться с данным типом передачи данных. Пример такой-же работы из PHP.
    PHP:
    $fp fsockopen ('forum.antichat.net''80');

    fputs ($fp'GET /member.php?u=124496 HTTP/1.1
    Host: forum.antichat.net'
    ."\r\n\r\n");

     while (!
    feof($fp)) {
            echo 
    fgets ($fp,128);
        }


    fclose ($fp);

     
    #1 randman, 19 Mar 2011
    Last edited: 14 Sep 2011
  2. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    эти сокеты в пхп это не сами сокеты операционной системы, это обертка над ними
    В общем так: если кодишь под определенную ос то используй сокеты предоставляемые API этой системы. В винде например это либа winsock. Тогда гугли С++ Winsock, или почитай статьи слэша, он наиболее просто и понятно это объяснил.
    Если используешь кроссплатформенный фрэймворк типа Qt то там должны быть свои обертки над сокетами.
     
  3. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    http://forum.antichat.ru/showpost.php?p=373579&postcount=6
     
  4. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    Code:
    #include <windows.h>
    #include <winsock.h>
    #include <iostream>
    #pragma comment(lib,"wsock32.lib")
    int main(int argv,char *argc[])
    {
    SOCKET sock;
    sockaddr_in SockAddr;
    WSADATA WSAData;
    WSAStartup(MAKEWORD(2,2), &WSAData);
    sock=socket(AF_INET,SOCK_STREAM,0);
    SockAddr.sin_family=AF_INET;
    SockAddr.sin_addr.S_un.S_addr=inet_addr("91.202.63.66");
    SockAddr.sin_port=htons(80);
    connect(sock,(struct sockaddr *)&SockAddr,sizeof(SockAddr));
    	char a[255]="GET /member.php?u=124496 HTTP/1.1\r\nhost: forum.antichat.ru\r\nConnection: close\r\n\r\n";
        int d=10;
    	char b[255]="";       
    	send(sock,a,sizeof(a),0);
    	Sleep(100);
    	while (d>0)
    	{
        
        d=recv(sock,b,sizeof(b),0);
    	std::cout << b; 
    	}
      
    
    closesocket(sock);
    getchar();
    return 0;
    }
    
     
    1 person likes this.
Thread Status:
Not open for further replies.