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

Сокеты: после вызова send программа зависает на функции recv - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запуск командной строки VS из конкретного каталога http://www.cyberforum.ru/cpp-beginners/thread1246995.html
Подскажите плиз, как запустить командную строку Visual Studio Command Promt (vsvars32.bat) из необходимого каталога, так как надоело постоянно использовать инструкцию cd.. для возврата из корневого каталога этого bat-файла. Я так понимаю, надо создать bat.файл и как-то указать путь, но все мои попытки завершились безуспешно.
C++ Json c++ send end write - существует ли готовая библиотека Здрасте, нужна такая штука которая бы умела посылать json обьекты методом post на кукую-нить страницу и получать оттуда json обьект в виде std::string т.е. у нас есть какой-нить string std::string pal = "{\"planet\":\"Tirella\"}" Мы его отправляем методом post на страницу localhost/core.php Там че-то обработать и вернуть ответ ввиде json//эт я и сам могу сделать std::string otvet =... http://www.cyberforum.ru/cpp-beginners/thread1246988.html
В дочерних классах компилятор сообщает об Undefined reference to pure virtual functions C++
Здравствуйте! Имеется базовый класс с чисто виртуальным деструктором (virtual ~Service() = 0). Однако в дочерних классах мне компилятор сообщает об undefined reference to ...::~Service(). Service (шаблон) целиком объявлен и реализован в hpp файле. Как это понимать?
Cannot convert from 'wchar_t' to 'const wchar_t *' C++
такой код, порылся в инете не помогло. ломать голову надоело может кто подскажет, буду благодарен. wchar_t * english = L"abvgdee ziyklmnoprstuf 'e " ; wchar_t TranslatedWord ; wcscat(TranslatedWord,english ) ;
C++ Нужен пример рекурсивной функции для понимания ее назначения и практической пользы http://www.cyberforum.ru/cpp-beginners/thread1246960.html
Не могу понять пользу рекурсии, может ли кто привести код в пример.
C++ Заменить все элементы, меньшие заданного числа, этим числом Использование функций-шаблонов: для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива, а также шаблон для решения основной задачи:Заменить все элементы, меньшие заданного числа, этим числом. #include "iostream" #include "conio.h" using namespace std; template < typename Х> подробнее

Показать сообщение отдельно
mh-coder
24 / 23 / 2
Регистрация: 01.02.2014
Сообщений: 717
29.08.2014, 11:53  [ТС]     Сокеты: после вызова send программа зависает на функции recv
В общем, я сделал проверки на ошибки, постоянно когда после одного хоста сокет конектится к другому вылетает лишбка 10056, пробовал каждый раз при смене домена отключать и заново создавать сокет, но тогда он посоянно выкидывает ошибку 10093, как нужно сделать правильно?

C++ (Qt)
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
#include "stdafx.h"
#include "Header.h"
#include "Server.h"
 
DWORD WINAPI Thread( LPVOID );
 
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    Array ex;
    string url,url_now;
    char data[1024*64] = {NULL};
 
    Client c2;
    Client c;
    Server b;
    b.LoadWinsoсk();
    b.CreateSocket();
 
 
 
    c.LoadWinsoсk();
    c.CreateSocket();
 
    c2.LoadWinsoсk();
    c2.CreateSocket();
 
    b.Bind("127.0.0.1",2222,SOMAXCONN);
    b.Listen();
 
 
 
    while(true){
 
        b.Accept(c);
 
 
        /*HANDLE Th = CreateThread(  NULL,NULL,Thread,(LPVOID)&c,NULL,NULL );   
        CloseHandle( Th );*/
 
        cout<<c.GetError()<<"\n"<<"\n";
 
 
 
        c.RecvData(data,sizeof(data));  
 
        ex = explode("\r\n",data);
        url = str_replace("Host: ","",ex[1] );
 
 
        //тут получаем домен
 
 
        if( url_now != url ) {
 
 
            c2.Connect(url.c_str(),80);
            cout<<"Connect - "<<c2.GetError()<<" now_url- "<<url_now<<" url - "<<url<<"\n";
            url_now = url;
        }
 
 
        c2.SendData(data,c.GetRecvSize());
        cout<<"Send hendle of browser - "<<c2.GetError()<<"\n"<<"\n";
 
 
        while(true)
        {
            c2.RecvData(data,sizeof(data));
            cout<<"Get info from site- "<<c2.GetError()<<"\n"<<"\n";
            if(c2.GetRecvSize() == 0 || c2.GetRecvSize() == SOCKET_ERROR){
                break;  
            }
            c.SendData(data,c2.GetRecvSize());
            memset(data,0,sizeof(data));
        }
        //c2.Disconnect();
    }
 
    return 0;
}
 
Текущее время: 20:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru