dotaz na C a sockety

From: <jvot_konference (zavinac) msgroup.cz>
Date: 13. 04. 2006, 10:51 CEST
Zdravím, jsem úplnej začátečník v C/C++, ale zkoušel jsem si splichtit
nějaký program na přístup na mailovou schránku přes POP3. Je to opsaný z
knihy od Pirkla o WinSock. Komunikace mi jede (USER, PASS, STAT, LIST) až na
RETR - to mi vrátí maximálně první řádek +OK 1523 octets blabla ... a zbytek
zprávy to nenačte. Nevíte v čem může být pes? 

Dík JVot

#include "stdafx.h"
#include "winsock.h"
using namespace std;

WSAData wsadata;
SOCKET sock;
SOCKADDR_IN SockAddrIn;
.
.
.
char buf[10000];
int i;

int _tmain(int argc, _TCHAR* argv[])
{
	//inic. Wsock
	int start_wsock=WSAStartup(MAKEWORD(2,2), &wsadata);
	if(start_wsock !=0){
		cout<<"chyba startu wsock"<<endl;
		system("pause");
		exit(1);
	}
	.
	.
	SockAddrIn.sin_addr.s_addr=inet_addr("xxx.xxx.xxx.xxx");
	if(connect(sock,(sockaddr*)
&SockAddrIn,sizeof(SockAddrIn))==SOCKET_ERROR){ 
		cout<<"chyba spojeni se serverem POP3"<<endl;
		closesocket(sock);
		system("pause");
		exit (1);
		}
	.
	.
	.
	.
// tohle je všechno ok
	strcpy (buf, "USER jmeno\n");
	send(sock,buf,strlen(buf),0);
	strcpy(buf,"");
	i=recv(sock,buf,10000,0);
	.
	.
	.
// tady to vrátí jen první řádek +OK blalbla octets
	strcpy (buf, "RETR 1\n");
	send(sock,buf,strlen(buf),0);
	i=recv(sock,buf,10000,0);
	cout<<"odpoved srv:"<<buf<<endl;

(
Received on Thu, 13 Apr 2006 10:51:53 +0200

This archive was generated by hypermail 2.1.8 : 13. 04. 2006, 10:49 CEST