Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++,Winsock]Pusty bufor

Ostatnio zmodyfikowano 2014-06-16 16:30
Autor Wiadomość
GGG205
Temat założony przez niniejszego użytkownika
[C++,Winsock]Pusty bufor
» 2014-06-14 17:13:27
Cześć! Znowu ja. Wysyłam do serwera wiadomość USER login@onet.pl i odbieram wiadomość, w której jest tylko spacja. Próbowałem w Borland C++ i dostawałem też pusty bufor, ale później użyłem recvtext(coś takiego było) i otrzymałem -1. Więc wróciłem do konsoli i pusty bufor.

Kod

C/C++
int main()
{
    WSAData wsaData;
   
    if( WSAStartup( MAKEWORD( 2, 2, ), & wsaData ) != 0 )
    {
        cout << "Wersja Winsock nie zgadza sie" << endl;
        WSACleanup();
    }
   
    SOCKET gniazdo = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
   
    if( gniazdo == INVALID_SOCKET )
    {
        cout << "Error gniazda" << endl;
        WSACleanup();
    }
   
    SOCKADDR_IN addres;
   
    addres.sin_family = AF_INET;
    addres.sin_port = htons( 995 );
    addres.sin_addr.s_addr = inet_addr( "213.180.147.145" );
   
    /*if(bind(gniazdo,(SOCKADDR*)&addres,sizeof(addres)) == SOCKET_ERROR)
    {
    cout << "Nie mozna polonczyc" << endl;
    WSACleanup;
    }
   
    if(listen(gniazdo,10) == SOCKET_ERROR)
    {
    cout << "Nie mozna zaczac nasluchiwac" << endl;
    }
   
    SOCKET gniazdoClienta = SOCKET_ERROR;
    cout << "Please waiting..." << endl;
   
    while(gniazdoClienta == SOCKET_ERROR)
    {
    gniazdoClienta = accept(gniazdo,NULL,NULL);
    }
    cout << "Connect succesfull" << endl;*/
   
    if( connect( gniazdo,( SOCKADDR * ) & addres, sizeof( addres ) ) == SOCKET_ERROR )
    {
        cout << "Nie mozna polonczyc z serwerem" << endl;
        WSACleanup();
    } else cout << "Polonczono" << endl;
   
    char * sendbuf = "USER gabrys19@onet.eu";
    char * recvbuf = "";
   
    send( gniazdo, sendbuf, strlen( sendbuf ), 0 );
    recv( gniazdo, recvbuf, strlen( recvbuf ), 0 );
   
    cout << * recvbuf;
   
    getch();
    closesocket( gniazdo );
    return 0;
}
P-112069
malan
» 2014-06-14 19:28:57
Pobaw się telnetem i zobacz co zwraca Ci serwer.
P-112075
GGG205
Temat założony przez niniejszego użytkownika
» 2014-06-14 19:50:07
A więc po połączeniu się nic nie ma. Kiedy próbuje coś wpisać nic się nie dzieje po prostu pusto.
P-112077
GGG205
Temat założony przez niniejszego użytkownika
» 2014-06-15 20:34:24
Próbowałem też ze stroną WP.pl i to samo. Może źle coś robię ? W cmd wpisuję: telnet wpisuje ip port; telnet pop.cos.pl 995
P-112134
maly
» 2014-06-16 09:59:31
C/C++
addres.sin_port = htons( 110 );
C/C++
char * sendbuf = "USER gabrys19";
char recvbuf[ 1024 ];
std::fill_n( recvbuf, * recvbuf + 1024, 0 );

send( gniazdo, sendbuf, strlen( sendbuf ), 0 );
recv( gniazdo, recvbuf, 1024, 0 );

cout << recvbuf;
P-112151
pekfos
» 2014-06-16 11:03:08
Bufor nie jest pusty, tylko w ogóle go nie ma.
P-112154
GGG205
Temat założony przez niniejszego użytkownika
» 2014-06-16 16:25:08
Ja piernicze działa. Czyli port 110 to jest jakiś domyślny ?
P-112160
maly
» 2014-06-16 16:30:06
POP3 dla nie szyfrowanej komunikacji standardowo używa portu 110 a dla szyfrowanej 995.
P-112161
« 1 »
  Strona 1 z 1