12 / 10 / 1
Регистрация: 12.03.2012
Сообщений: 127
1

Boost asio закрытие сокет-соединения

28.07.2012, 22:45. Показов 1985. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!

Прослушиваю порт:
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
void function_cb(socket_ptr sock)
{
....
}
int main(int argc, char* argv[])
{
    try
    {
        boost::asio::io_service io_service;
 
        tcp::acceptor a( io_service, tcp::endpoint( tcp::v4(), 99999 ) );
    
        for (;;)
        {
            socket_ptr sock( new tcp::socket(io_service) );
            a.accept(*sock);
            boost::thread t(boost::bind( function_cb, sock ));
        }  
    }
    catch (std::exception& e)
    {
        std::cerr << "Exception: " << e.what() << "\n";
    }
 
    return 0;
}
При подключении клиента к серверу, он передает идентификатор. На один такой идентификатор может быть только 1 подключение. Создаю std::map где ключ это данный идентификатор, а значение - socket_ptr. В самой ф-ции function_cb я проверяю есть ли в std::map данный ключ и если есть то пытаюсь закрыть прошлую сессию:
C++
1
2
sesList[pkey]->cancel( error );
sesList[pkey]->close( error );
По идеи сессия должна закрыться, но на деле этого не происходит и оно позже закрывается сама собой.

Добавлено через 37 минут
Всё спасибо, разобрался.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2012, 22:45
Ответы с готовыми решениями:

boost::asio не все данные отправляются в сокет
При синхронной передаче данных почему то не все пакеты доходят до сервера: ...

Boost::asio закрытие приложения в отладке
При выполнении прога просто закрывается, в дебаге появляется: Exception thrown at 0x758ED3CF in...

boost::asio
начал ковырять буст. Возник вопрос с созданием клинт-серверного приложения. Для ознакомления хочу...

boost/asio
Кто тестил asio в Вuilder-е? Код использовал отсюда...

1
829 / 352 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
29.07.2012, 02:16 2
kvadro, так напишите свое решение, может кому-то да поможет в будущем.
0
29.07.2012, 02:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2012, 02:16
Помогаю со студенческими работами здесь

Boost Asio C++
Добрый день. Юзаю этот ( http://www.boost.org/ ) проект. Нужна помощь с документаций...

Boost.asio
Добрый день. Я только начал знакомство с boost.asio и при использовании примеров с офф.сайта...

boost::asio пример
Привет! Можно, пожалуйста, простейший пример работы с boost::asio - клиент-серверная программа,...

C++ | boost::asio + ssl?
Доброго времени суток! Хотелось бы узнать как подключаться по SSL? int main() { ...


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

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

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