• 大小: 4.27MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-15
  • 语言: C/C++
  • 标签: 源码  下载  

资源简介

经典源码!俄罗斯方块源码,单片机源码,飞机订票系统源码,中国象棋源码,贪吃蛇源码等等!

资源截图

代码片段和文件信息

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   copyright            : (C) 2002 by Zhang Yong                         *
 *   email                : z-yong163@163.com                              *
 ***************************************************************************/

#include “httpsession.h“
#include “sessionlistener.h“
#include “icqsocket.h“
#include “icqclient.h“
#include “udppacket.h“
#include “base64.h“

#define MYICQ_HTTP_PORT 443

enum {
HTTP_STATUS_CONNECT
HTTP_STATUS_ESTABLISHED
};

HttpSession::HttpSession()
{
sock = -1;
status = -1;
listener = NULL;

bufSize = 0;
}

HttpSession::~HttpSession()
{
if (sock >= 0)
IcqSocket::closeSocket(sock);
}

bool HttpSession::start(const char *destHost ProxyInfo &proxy)
{
this->destHost = destHost;
bufSize = 0;

if (sock >= 0)
IcqSocket::closeSocket(sock);
sock = IcqSocket::createSocket(SOCK_STREAM this);

sockaddr_in addr;
memset(&addr 0 sizeof(addr));
addr.sin_family = AF_INET;

uname = proxy.username;
passwd = proxy.passwd;

const char *host = proxy.host.c_str();
if ((addr.sin_addr.s_addr = inet_addr(host)) == INADDR_NONE) {
hostent *he = gethostbyname(host);
if (!he)
goto failed;
addr.sin_addr = *(in_addr *) he->h_addr;
}
addr.sin_port = htons(proxy.port);

status = HTTP_STATUS_CONNECT;

if (connect(sock (sockaddr *) &addr sizeof(addr)) == 0)
onConnect(true);
else if (IcqSocket::getSocketError() != EINPROGRESS)
goto failed;

return true;
failed:
close(sock);
sock = -1;
listener->sessionfinished(false);
return false;
}

void HttpSession::onConnect(bool success)
{
if (!success) {
listener->sessionfinished(false);
return;
}

string request = “CONNECT “;
request += destHost + “:“ + itoa(MYICQ_HTTP_PORT buf 10);
request += “ HTTP/1.0\r\n“;
request += “User-agent: MyICQ\r\n“;

if (!uname.empty()) {
string str = uname + “:“ + passwd;
char *code = NULL;
encode_base64(str.c_str() str.length() &code);
if (code) {
request += “Proxy-authorization: Basic “;
request += code;
request += “\r\n“;

free(code);
}
}

request += “\r\n“;
send(sock request.c_str() request.length() 0);
}

bool HttpSession::onReceive()
{
int n;

if (status == HTTP_STATUS_CONNECT) {
n = recv(sock buf sizeof(buf) 0);
if (n <= 0)
goto failed;

buf[n] = ‘\0‘;

char *p1 = strchr(buf ‘ ‘);
char *p2 = strchr(buf ‘\r‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5039  2006-06-06 09:56  c,c++源码\ICQ即时通讯源码\downcode.com.txt

     文件       5039  2006-06-06 09:56  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\downcode.com.txt

     文件        624  2002-05-31 15:24  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\1-1.bmp

     文件        624  2002-05-31 15:24  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\1-2.bmp

     文件        632  2002-05-31 15:24  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\1-3.bmp

     文件        624  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\10-1.bmp

     文件        620  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\10-2.bmp

     文件        624  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\10-3.bmp

     文件        596  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\11-1.bmp

     文件        588  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\11-2.bmp

     文件        596  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\11-3.bmp

     文件        620  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\12-1.bmp

     文件        604  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\12-2.bmp

     文件        620  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\12-3.bmp

     文件        588  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\13-1.bmp

     文件        588  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\13-2.bmp

     文件        588  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\13-3.bmp

     文件        630  2002-05-31 15:24  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\14-1.bmp

     文件        624  2002-05-31 15:24  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\14-2.bmp

     文件        628  2002-05-31 15:24  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\14-3.bmp

     文件        628  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\15-1.bmp

     文件        624  2002-05-31 15:24  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\15-2.bmp

     文件        624  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\15-3.bmp

     文件        628  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\16-1.bmp

     文件        624  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\16-2.bmp

     文件        628  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\16-3.bmp

     文件        600  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\17-1.bmp

     文件        604  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\17-2.bmp

     文件        604  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\17-3.bmp

     文件        632  2002-05-30 23:48  c,c++源码\ICQ即时通讯源码\MyICQ-0.8-alpha1\myicq-win32\face\18-1.bmp

............此处省略1125个文件信息

评论

共有 条评论