Форум программистов, компьютерный форум CyberForum.ru

Форум - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать библиотеку процедур для приёма-передачи данных по сети на основе протокола UDP http://www.cyberforum.ru/cpp-beginners/thread490436.html
Здравствуйте. Вот задание. Разработать библиотеку процедур для приёма-передачи данных по сети на основе протокола UDP и текст для её проверки. Данные представлены в виде XML-документах. Реализовать на C# или С++. Что такое UDP-понятно. Но с таким заданием впервые встретился. Может, где почитать можно что похожее. Посоветуйте, кто что-нибудь знает. Заранее благодарен.
C++ Как изменить многомерный массив? Обесните плз - я объявляю многомерный массив и заполняю. Когда в программе я пытаюсь его изменить происходит ошибка. С одномерными все нормально , а как двумерные? Киньте кто-нибудь пример please! http://www.cyberforum.ru/cpp-beginners/thread490434.html
C++ Как открыть корень дерева диска на интересующей папке?
Помогите открыть корень дерева диска на интересующей папке?
Конвертор Dos или Windows кодировок C++
Есть текстовые файлы, они могут быть в кодировке Dos или Windows, нужно написать конвертор, чтобы можно было просматривать их так и так
C++ исходники по работе с ListView http://www.cyberforum.ru/cpp-beginners/thread490357.html
Есть ли где нибудь исходники по работе с ListView нужен класс типа class cListView { int SetOwner(HWND LvHandle) { ... } int AddColumn(...){ ... } int AddItem(...){
C++ Задача: Нужна удалит строки с нечетным числом слов Сдраствуете, помогите мне ресит задачу на borland c++: 'Нужна удалит строки с нечетным числом слов'. Кинте хотя похожый пример. подробнее

Показать сообщение отдельно
sergey2
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 7
30.11.2010, 15:44  [ТС]     Форум
спасибо за линки...
Хмм вобщето у меня есть одна проблемка....
Я тут SOCKS5 сервак пишу, чтойто у меня он не хочет работать,
вроде все как в RFC 1928 делаю...
молчек... клиент коннектиться и все ждет, ждет ждет, чего-???
вот кусок кода который я написал если нужен cServer
или cThread могу скинуть...
он конечно ничего не делает, просто отдает в ответе на запрос тот же адресс и порт и поидее клиент должен туда законнектитьсЯ, но что-то не получается ...
WORD swapword(WORD w) {
_asm {
mov ax,w
xchg al,ah
mov w,ax
}
return w;
}

//Based on RFC 1928...
DWORD _stdcall SOCKS5_client_th(void*param){
cClient*cli=(cClient*)param;
cServer* serv=(cServer*)cli->classptr;
char b;
serv->waitnrecv(cli->sock,&b,1);
if (b!=5) {
serv->DropSock(cli->sock);
return 0;
}
serv->waitnrecv(cli->sock,&b,1);
if (b!=0) {
char*buf=new char[b];
serv->RecvSized(cli->sock,buf,b);
delete[]buf;
}
char c[1];
c[0]=5;
c[1]=0;
//Method is selected (no authentication required...)
serv->SendSized(cli->sock,c,2);

//Getting command from client...
char d[3];
serv->RecvSized(cli->sock,d,4);
unsigned char e;
bool asIP=false;
DWORD IP=0;
WORD Port=0;
char*domain;
if (d[3]==1) {
asIP=true;
serv->RecvSized(cli->sock,(char*)&IP,4);
}
if (d[3]==3) {
asIP=false;
serv->RecvSized(cli->sock,(char*)&e,1);
domain=new char[e];
serv->RecvSized(cli->sock,domain,e);
domain[e]=0;
}

serv->RecvSized(cli->sock,(char*)&Port,2);
//Port=swapword(Port);
Port=ntohs(Port);
if ((d[3]!=3)&&(d[3]!=1)) {//IP V6 address type ? ...goodbye then.
d[1]=8;//ERROR :address type is not supported.
serv->SendSized(cli->sock,d,4);
switch(asIP) {
case true:
serv->SendSized(cli->sock,(char*)&IP,4);
break;
case false:
e=lstrlen(domain);
serv->SendSized(cli->sock,(char*)&e,1);
serv->SendSized(cli->sock,domain,e);
break;
}
serv->SendSized(cli->sock,(char*)&Port,2);
serv->DropSock(cli->sock);
return 0;
}
//Address type is supported, sending answer to client
d[1]=0;
int clisock;
serv->SendSized(cli->sock,d,4);
switch(asIP) {
case true:
//serv->opensock(0,0,clisock,false);
//serv->connectsock(clisock,IP,Port);
serv->SendSized(cli->sock,(char*)&IP,4);
break;
case false:
IP=serv->getip(domain);
//serv->opensock(0,0,clisock,false);
//serv->connectsock(clisock,IP,Port);
e=lstrlen(domain);
serv->SendSized(cli->sock,(char*)&e,1);
serv->SendSized(cli->sock,domain,e);
break;
}
Port=htons(Port);
//Port=swapword(Port);
serv->SendSized(cli->sock,(char*)&Port,2);
//b=0;
//serv->waitnsend(cli->sock,&b,1);
//serv->waitnsend(cli->sock,&b,1);
//char buf[1999];
//ZeroMemory(buf,sizeof(buf));

//serv->waitnrecv(cli->sock,buf,sizeof(buf));
MessageBox(0,buf,'YO',0x40);
//serv->DropSock(cli->sock);
//serv->relay_socks(cli->sock,clisock);
return 0;
}

DWORD _stdcall SOCKS5_serv_th(void *paramA) {
cServer *param=(cServer*)paramA;
int serv=param->listserv;
int client;
while (true) {
client=accept(serv,0,0);
if (client == 0 || client == INVALID_SOCKET) continue;
MessageBox(0,'Yet another client...','',0x40);
cClient *cli=new cClient [1];
cli->classptr=param;
cli->sock=client;
cThread *clithread;
clithread=new cThread();
clithread->run(SOCKS5_client_th,cli);
}
}
 
Текущее время: 07:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru