Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 28.06.2007
Сообщений: 9
1

На чём компилировать?

07.07.2007, 10:12. Показов 2323. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот этот код, VC++ не ставится, Borland c++ Builder поставил, но там непонятно куда его вставлять...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
#include "pop3.h"
#include "md5/md5.h"
#include <algorithm>      // std::copy
#include <sstream>
 
const std::string crlf_ = "\xD\xA\x0";
 
pop3Client::pop3Client()
  : _rec(), _con(), _socket(), _timeStamp()
{
}
/*----------------------------------------------------------------------------*/
pop3Client::~pop3Client()
{
  if(_socket != 0)
  {
    ::closesocket(_socket);
    _socket = 0;
  }
  ::WSACleanup();
}
/*----------------------------------------------------------------------------*/
bool pop3Client::checkError(const std::string& data)
{
  if(data.at(0) == '-')
  {
    return false;
  }
  return true;
}
/*----------------------------------------------------------------------------*/
bool pop3Client::receivFromPop3(std::string& data)
{
  unsigned length = 0;
  char buffer[0x0400] = {0};
  // получение
  std::string temp("");
  while( length != SOCKET_ERROR ) 
  {
    length = ::recv( _socket, buffer, 0x01ea, 0 );
    if ( length == 0 || length == SOCKET_ERROR)
    {
      return false;
    }
    // копирование принятых данных во временную строку
    std::copy(buffer, &buffer[length], std::back_inserter<std::string>(temp));
    if(length == 490 )
    {
      continue;
    }
    length = SOCKET_ERROR;
  }
  // возвращаемое значение
  data = temp;
  return true;
}
/*----------------------------------------------------------------------------*/
bool pop3Client::sendToPop3(const std::string& data)
{
  if(data.empty())
  {
    return false;
  }
  if(_socket == 0)
  {
    return false;
  }
  // отправка
  if(::send(_socket, data.c_str(), int(data.size()), 0) == SOCKET_ERROR )
  {
    // не удалось отправить
    return false;
  }
  // на всякий случай
  ::Sleep(500);
  return true;
}
/*----------------------------------------------------------------------------*/
bool pop3Client::setAddress(const std::string& address)
{
  if(::WSAStartup(MAKEWORD(1,1), &_rec))
  {
    return false;
  }
  if( address.empty())
  {
    return false;
  }
  _con.sin_addr.s_addr = ::inet_addr( address.c_str() );
  _con.sin_family = AF_INET;         //семейство протоколов
  _con.sin_port = ::htons(110);       //порт
  return true;
}
/*----------------------------------------------------------------------------*/
bool pop3Client::hello()
{
  if(_socket  != 0)
  {
    ::closesocket(_socket);
    _socket = 0;
  }
  //создание сокета
  if( (_socket = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET )
  {
    return false;
  }
  // присоединение к серверу
  if(::connect(_socket, (struct sockaddr*)&_con, sizeof(_con)) == INVALID_SOCKET)
  {
    return false;
  }
  std::string data = "";
  // ожидание и проверка ответа
  if(receivFromPop3(data) == false)
  {
    return false;
  }
  if(checkError(data) == false)
  {
    return false;
  }
  // выделение timeStamp сервера
  std::string::size_type beg = data.find("<"), end = data.find(">", beg);
  if(beg == std::string::npos || end == std::string::npos)
  {
    return false;
  }
  _timeStamp = data.substr(beg , end - beg + 1);
  return true;
}
/*----------------------------------------------------------------------------*/
void pop3Client::quit()
{
  std::string quit = std::string("quit") + crlf_; 
  if(!sendToPop3(quit))
  {
    return;
  }
  if(!receivFromPop3(quit))
  {
    return;
  }
  if(_socket != 0)
  {
    ::closesocket(_socket);
    _socket = 0;
    _timeStamp = "";
  }
  return;
}
/*----------------------------------------------------------------------------*/
bool pop3Client::retr(unsigned messageNumber, std::string& message)
{
  // проверка аргументов
  if(messageNumber == 0)
  {
    return false;
  }
  // формирование запроса серверу на пересылку сообщения
  std::stringstream sstream;
  sstream<<"retr "<<messageNumber<<crlf_;
  std::string retr = sstream.str();
  std::string data = "";
  if(!sendToPop3(retr))
  {
    return false;
  }
  do 
  {
    if(!receivFromPop3(retr))
    {
      return false;
    }
    data += retr;
  } while( retr.find(".\xD\xA") == std::string::npos);
  // разбор прочитанной строки
  std::string::size_type beg = data.find("Return-Path: "),
    end = data.find_last_of(".");
  if(beg == std::string::npos || end == std::string::npos)
  {
    return false;
  }
  message = data.substr(beg, end - beg ); 
  return true;
}
/*----------------------------------------------------------------------------*/
bool pop3Client::dele(unsigned messageNumber)
{
  // формирование запроса
  std::stringstream sstream;
  sstream<<"dele "<< messageNumber;
  std::string dele = sstream.str() + crlf_;
  if(!sendToPop3(dele))
  {
    return false;
  }
  if(!receivFromPop3(dele))
  {
    return false;
  }
  return checkError(dele);
}
/*----------------------------------------------------------------------------*/
bool pop3Client::apop(const std::string& user, const std::string& pass)
{
  if(user.empty() || pass.empty())
  {
    return false;
  }
  // формирование хеша
  std::string toHash = _timeStamp + pass;
  unsigned char hash[16] = {0};
  // хэшируем
  md5_csum((unsigned char*)toHash.c_str(), (int)toHash.size(), hash);
  // приведение hash k hex представлению
  std::stringstream sstream;
  sstream<<std::hex<<std::nouppercase;
  for(unsigned int counter = 0; counter < 16; counter++)
  {
    sstream<<(long)hash[counter];
  }
  std::string apop = "apop " + user;
  // apop += " " + std::string((char*)hash);
  apop += " " + sstream.str();
  apop += crlf_;
  if(sendToPop3(apop) == false)
  {
    return false;
  }
  ::Sleep(1000);
  if(receivFromPop3(apop) == false)
  {
    return false;
  }
  return checkError(apop);
}
/*----------------------------------------------------------------------------*/
bool pop3Client::stat(unsigned& messages)
{
  std::string stat = std::string("stat") + crlf_; 
  if(!sendToPop3(stat))
  {
    return false;
  }
  if(!receivFromPop3(stat))
  {
    return false;
  }
  if(!checkError(stat))
  {
    return false;
  }
  // разбор ответа
  std::string::size_type pos = stat.find_first_of(" ");
  if(pos == std::string::npos)
  {
    return false;
  }
  std::string::size_type end = stat.find(" ", pos + 1);
  std::stringstream sstream;
  // выделение подстоки
  sstream<<stat.substr(pos + 1, end - pos - 1);
  sstream>>messages;
  return true;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2007, 10:12
Ответы с готовыми решениями:

Чем компилировать?
Всем приятного время провождения возникла проблема не могу понять чем компилировать данный...

Чем компилировать STM8?
atm-none-eabi-gcc не умеет, в sdcc тоже нет поддержки этого типа МК. И в чем компилировать-то в...

Чем лучше компилировать на ассемблере
Преподаватель установил нам в университете tasm 1.4, но дело вот в том, что или я не понимаю...

Чем компилировать скрипт третьего питона?
Может подсказать, чем компилировать скрипт третьего питона ?)

1
0 / 0 / 0
Регистрация: 28.06.2007
Сообщений: 9
07.07.2007, 11:31  [ТС] 2
Borland C++ 4.5
unable to open include file winsock2.h
unable to open include file string

Borland C++ 5.02 с средой разработки
unable to open include file sstream.h

Borland C++ 5.5 без среды разработки
bcc32.exe pop3.cpp
unable to open include file winsock2.h
unable to open inclue file string
unable to open include file algorithm

unable to open include file sstream


C++BuilderX
Unable to open include file 'sstream.h'
и куча других ошибок
Выбираю Project Make pop3.cpp
и не понятно что выбирать, какой проджект делать, выбираю консольное приложение

установил вижуал студио 2005
вот исходник с инклудами, только он не в виде проекта, как его в студию запихать и скомпилить?
http://satellat.tripod.com/pop3.rar
0
07.07.2007, 11:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2007, 11:31
Помогаю со студенческими работами здесь

Помогите разобраться с кодом и чем компилировать
Собственно говоря... задали написать преподы фтп клиент.... в этом деле честно говоря не...

SCPI - на чем компилировать под COM-PORT
Вот, есть мультиметр Метран 514. Он понимает SCPI команды, работает с ПК по компорту (рс232). На...

Хочу писать в блокноте, чем компилировать?
Здравствуйте, я хочу писать код в обычном блокноте, но не могу разобраться чем и каким образом...

Что это за язык и в чем компилировать?
Ну собственно вопрос в заголовке :) Помогите пожалуйста, кому не западло var Form1:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru