Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > decode


Автор: m1nd 13.11.2005, 20:08
Здарова, народ!
У меня тут возник вопрос, достаточно тривиальный:
я решил переписать сетевое приложение с консольного на графическое
(visual c++ 6) и столкнулся со следующей проблемой: я никак не могу разобраться с типами данных.
Обычные преобразования типа atoi, itoa и т.п. не помогают, подскажите плз. эти команды или дайте ссылку
на ресурс. Вот примерное приложение:

#include <stdio.h>
#include <winsock2.h>

int main(int argc, char* argv[])
{
int f_p, t_p;
struct servent *sp;
struct sockaddr_in peer;
WSADATA wd;

if (argc != 4)
{
puts("[!] nOT eNOUGHT aCTUAL pARAMETERSn");
exit(0);
}

f_p = atoi(argv[2]);
t_p = atoi(argv[3]);

printf("[i] rEADY tO sCAN %s pORTS fROM %d tO %dn", argv[1], f_p, t_p);

/*Заполнение структуры sockaddr_in*/
peer.sin_family = AF_INET;
peer.sin_addr.s_addr = inet_addr(argv[1]);

/*Инициализация библиотеки winsock*/
WSAStartup(MAKEWORD(2, 0), &wd);

puts("[>] sCAN sTARTED");

/*Собственно, сканирование smile*/
for (; f_p <= t_p; f_p++)
{
SOCKET s;

peer.sin_port = htons(f_p);

s = socket(AF_INET, SOCK_STREAM, 0);
if (s == INVALID_SOCKET) {
puts("[!] sOCKET eRROR");
break;
}

if (!connect(s, (struct sockaddr * ) & peer, sizeof(peer)))
{
sp = getservbyport(peer.sin_port, "tcp");

/*Вывод результата на экран*/
if (sp == NULL)
printf("t%-5dtunknownn", f_p);
else
printf("t%-5dt%sn", f_p, sp->s_name);
}

closesocket(s);
}

puts("[>] sCAN fiNiSHED");

return 0;
}
Заранее благодарю!



Автор: The Thing 14.11.2005, 00:48
Я чего-то не понял.. у тебя не проходит это?
Код

...
f_p = atoi(argv[2]); 
t_p = atoi(argv[3]); 
...

Автор: m1nd 14.11.2005, 18:19
Не, я же написал, мне нужно переписать приложение с консольного на графическое.
В графическом мне нужно присвоить переменной с типом CString другую с типом int (не знаю как это сделать, atoi и др. не получаются), и после этого вывести результат в поле(хотя бы richedit), а как это сделать не знаю...

Автор: Vitaly 15.11.2005, 10:51
CString str1;
int i = 5;
str1.Format("%d ",i);
AfxMessageBox(str1);
Вроде все, если с синтаксисом не напутал.;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)