Exemplo n.º 1
0
InputWidget::InputWidget(QWidget *parent) :
    QDialog(parent)
{
    label=new QLabel(tr("优酷页面地址:"));
    lineEdit=new QLineEdit();
    okBtn=new QPushButton("OK");
    layout=new QHBoxLayout;
    layout->addWidget(label);
    layout->addWidget(lineEdit);
    layout->addWidget(okBtn);
    setLayout(layout);
    connect(okBtn,SIGNAL(clicked()),this,SLOT(parase()));
}
Exemplo n.º 2
0
int recvAndParase(int firstSize, int secondSize)
{
	char				recvBuffer[MAX_FRAME_SIZE] = {'*'};
	int					onceRecved = 0;
	int					leaveParased = 0;						//上次遗留了多少字节没处理
	int					errCode;
	HTTP_PARASE_PARAM	httpParam;
	LINE_PARASE_PARAM   headerParam;
	bool				firsted = false;
	int					readSize;

	initState(httpParam, headerParam);
	while(1)
	{
		if(firsted)	
			readSize = secondSize;
		else
			readSize = firstSize;
		onceRecved = myRecv(recvBuffer+leaveParased, readSize);
		if(onceRecved <= 0) 
			return onceRecved;

		firsted = true;

		errCode = parase(recvBuffer, onceRecved+leaveParased, httpParam, headerParam);
		if(errCode < 0)
			printf("我晕,解析出错了\n");

		assert(errCode <= onceRecved+leaveParased);
		
		leaveParased = onceRecved+leaveParased-errCode;

		assert(leaveParased >= 0);
		memmove(recvBuffer, recvBuffer+errCode, leaveParased);
	}

	return 0;
}