1 / 1 / 1
Регистрация: 04.04.2010
Сообщений: 81
1

Сокет зависает при получении данных xml формата

19.05.2010, 16:54. Показов 1710. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу понять в чем ошибка. По идеи должен возвращать данные xml формата, а у меня просто зависает. Подскажите где я ошибся.
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
        int XConnect()
        {
        WSADATA wsaData;
        int errcod;
        errcod = WSAStartup(MAKEWORD(2, 2), &wsaData);
            if(errcod!=0)
            {
            std::cout<<"WinSock not found!";
            return 0;
            }
        SOCKET sock1;
        sock1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        if(sock1<0)
        {
            std::cout<<"Socket create error:"<<WSAGetLastError();
        }
        sockaddr_in der_addr;
        der_addr.sin_family = AF_INET;
        der_addr.sin_addr.s_addr = inet_addr("85.25.191.60");
        der_addr.sin_port = htons(80);
            if(connect(sock1, (sockaddr*)&der_addr, sizeof(der_addr))<0)
            {
                std::cout<<"Error connect";
            }
            char *data2;
            char *data1="GET [url]http://api.rutvit.ru/statuses/public_timeline.xml[/url] HTTP/1.0\r\n\HOST: api.rutvit.ru/\r\n\r\n";
            send(sock1, data1, sizeof(data1), 0);
            recv(sock1, data2, sizeof(data2), 0);
            std::cout<<data2;
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2010, 16:54
Ответы с готовыми решениями:

Зависает клиент при получении файла
часть сервера public void getFile(string name) { ...

Зависает программа при получении таблицы из базы
Добрых времени суток. Есть удаленная БД, подключение к ней проходит нормально, а вот при попытке...

Зависает страница при получении сертификата разработчика
Всем доброго времени суток, огромная прозьба помоч, я пытаюсь купить сертификат разработчика ios,...

Приложение зависает при получении письма с вложениями pop3
Доброе время суток! Помогите разобраться. Сделал программу получения почты. Работает. Вот только...

5
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
19.05.2010, 17:17 2
постовь точки останова и проследи о шагам до какого место доходит.
может он не доходит до этого кода или перескакивает его.
0
1 / 1 / 1
Регистрация: 04.04.2010
Сообщений: 81
19.05.2010, 17:52  [ТС] 3
Вот немного исправил программу, но теперь печатает какие то странные символы.
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
class Core
{
    //private:
public:
        int XConnect()
        {
        WSADATA wsaData;
        int errcod;
        errcod = WSAStartup(MAKEWORD(2, 2), &wsaData);
            if(errcod!=0)
            {
            std::cout<<"WinSock not found!";
            return 0;
            }
        SOCKET sock1;
        sock1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        if(sock1<0)
        {
            std::cout<<"Socket create error:"<<WSAGetLastError();
        }
        sockaddr_in der_addr;
        der_addr.sin_family = AF_INET;
        der_addr.sin_addr.s_addr = inet_addr("85.25.191.60");
        der_addr.sin_port = htons(80);
            if(connect(sock1, (sockaddr*)&der_addr, sizeof(der_addr))<0)
            {
                std::cout<<"Error connect";
            }
            char data2[512];
            char data1[512]="GET [url]http://api.rutvit.ru//statuses//public_timeline.xml[/url] HTTP//1.0\r\n\HOST: api.rutvit.ru/\r\n\r\n";
            send(sock1, data1, sizeof(data1), 0);
            //recv(sock1, data2, sizeof(data2), 0);
            std::cout<<data2;
        }
};
 
void main()
{
    Core f;
    f.XConnect();
    system("pause");
}
0
98 / 54 / 3
Регистрация: 18.03.2009
Сообщений: 273
19.05.2010, 18:01 4
Еще бы!
C++
1
2
3
4
5
char data2[512]; // на данном этапе в массиве беспорядочные байты
send(sock1, data1, sizeof(data1), 0);
// получение данных закоментарено, и не выполняется
//recv(sock1, data2, sizeof(data2), 0);
std::cout<<data2; // ты выводишь всё те же случайные байты, которые существовали в массиве на этапе его объявления
Добавлено через 1 минуту
И еще: двойные слэши в строке "char data1[512]=бла-бла-бла" НЕ НУЖНЫ!
И BB-код [url] тоже не нужен
0
1 / 1 / 1
Регистрация: 04.04.2010
Сообщений: 81
19.05.2010, 18:10  [ТС] 5
Получение данных в коментах для отладки, просто я забыл их убрать в посте. А следственно какая то часть данных все равно должна была попасть.

Добавлено через 6 минут
Ура! Заработало. Правда выдается страница ошибки место xml файла, но это я уже запрос, наверно, сделал не правильно. Всем спс.
0
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
02.07.2010, 13:30 6
hromjo, а целиком как выглядит?
0
02.07.2010, 13:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2010, 13:30
Помогаю со студенческими работами здесь

NULL при получении значения атрибута узла XML
Здравствуйте! Код программы: _di_IXMLNode A_Number_PP = SubParcel_node-&gt;AttributeNodes-&gt;FindNode(...

Импорт данных формата XML в MS Access
Подскажите, пожалуйста, причину ошибки: Run-time error '31527' Path not found:...

Парсер данных из txt или xml формата
Здравствуйте, выполняю одно студенческое задание и немного стопорнулся в этом вопросе. Все не так...

"Возникла ошибка в получении XML данных" На Xubuntu 11.04
Добрый день товарищи сисадмины и програмисты. пришел к Вам поскольку на форуме убунту.ру проблему...

Массовый экспорт данных из MS SQL Server в файл формата XML
Уважаемые форумчане! Ищу помощи. Суть вопроса такова: Есть такая программа - bulk copy program...

Ошибка при получении данных из БД при использовании MVC framework 4.0
// HomeControlers.cs using System; using System.Collections.Generic; using System.Linq; using...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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