Сообщение Вопрос НЕ про Poco! Любая простая net библиотека от 01.02.2017 20:16
Изменено 03.02.2017 4:39 Мёртвый Даун
Вопрос НЕ про Poco! Любая простая net библиотека
Здравствуйте, Мёртвый Даун, Вы писали:
МД>P.S. 21-ый век на дворе, но как оказалось нигде не найти примера нормального асинхронного TCP клиента. Жесть! Вообще разочарован.
Так и не запинал этот кусок дерьмища, непонятно как им пользоваться. Абсолютно не приспособленная библиотека для работы с сетью и с сокетами. Везде где можно рекомендовал чтобы никогда не пользовались этой библиотекой. Полное отсутствие примеров дальше чем хэлоу ворлд.
Если я там сделал socket.shutdownSend(), то на следующий socket.send() ошибка. А как возобновить передачу? Жесть.
Если сокеты блокирующие, то таймауты не работают. Если не блокирующие то вообще беда. Как там товарищ привел в пример, SocketReactor, так оно вообще всё наглухо вешает, ибо эти хэндлеры стреляют. Жесть.
Socket::receiveBytes() всегда ноль возвращает, типа graceful shutdown. Жесть!!!
Ну как этим дерьмом пользоваться то?
Про многопоточность вообще молчу, сокеты там даже и не работают.
Сейчас совсем нет никаких нормальных библиотек для работы с сокетами? Это же беда совсем. Я уже незнаю, хочу очень простого, но побольше чем хэлоу ворлд.
Жаль что Qt нельзя использовать в проекте, там всё это за 5 мин пишется.
Псевдо:
Я сильно много хочу?
МД>P.S. 21-ый век на дворе, но как оказалось нигде не найти примера нормального асинхронного TCP клиента. Жесть! Вообще разочарован.
Так и не запинал этот кусок дерьмища, непонятно как им пользоваться. Абсолютно не приспособленная библиотека для работы с сетью и с сокетами. Везде где можно рекомендовал чтобы никогда не пользовались этой библиотекой. Полное отсутствие примеров дальше чем хэлоу ворлд.
Если я там сделал socket.shutdownSend(), то на следующий socket.send() ошибка. А как возобновить передачу? Жесть.
Если сокеты блокирующие, то таймауты не работают. Если не блокирующие то вообще беда. Как там товарищ привел в пример, SocketReactor, так оно вообще всё наглухо вешает, ибо эти хэндлеры стреляют. Жесть.
Socket::receiveBytes() всегда ноль возвращает, типа graceful shutdown. Жесть!!!
Ну как этим дерьмом пользоваться то?
Про многопоточность вообще молчу, сокеты там даже и не работают.
Сейчас совсем нет никаких нормальных библиотек для работы с сокетами? Это же беда совсем. Я уже незнаю, хочу очень простого, но побольше чем хэлоу ворлд.
Жаль что Qt нельзя использовать в проекте, там всё это за 5 мин пишется.
Псевдо:
class client_connection
{
public:
client_connection() {
m_socket.connect(...);
// register some handlers
...
}
~client_connection() {
m_socket.disconnect();
}
void on_read_data() {
int bytes = m_socket.read();
...
}
void send(unsigned char* data, int length) {
m_socket.send(data, length);
}
private:
socket m_socket;
}
// где то используем
class some_thread_or_widget_or_some_shit {
public:
void OnButtonClickOrJustAnythingElse() {
m_client.send(...);
m_client.getData(...);
m_client.send(...);
m_client.getData(...);
m_client.send(...);
m_client.getData(...);
m_client.send(...);
m_client.getData(...);
m_client.send(...);
m_client.send(...);
m_client.send(...);
m_client.getData(...);
}
private:
client_connection m_client;
}
Я сильно много хочу?
Вопрос НЕ про Poco! Любая простая net библиотека
Здравствуйте, Мёртвый Даун, Вы писали:
МД>P.S. 21-ый век на дворе, но как оказалось нигде не найти примера нормального асинхронного TCP клиента. Жесть! Вообще разочарован.
Так и не запинал этот кусок дерьмища, непонятно как им пользоваться. Абсолютно не приспособленная библиотека для работы с сетью и с сокетами. Везде где можно рекомендовал чтобы никогда не пользовались этой библиотекой. Полное отсутствие примеров дальше чем хэлоу ворлд.
Если я там сделал socket.shutdownSend(), то на следующий socket.send() ошибка. А как возобновить передачу? Жесть.
Если сокеты блокирующие, то таймауты не работают. Если не блокирующие то вообще беда. Как там товарищ привел в пример, SocketReactor, так оно вообще всё наглухо вешает, ибо эти хэндлеры стреляют. Жесть.
Socket::receiveBytes() всегда ноль возвращает, типа graceful shutdown. Жесть!!!
Ну как этим дерьмом пользоваться то?
Про многопоточность вообще молчу, сокеты там даже и не работают.
Сейчас совсем нет никаких нормальных библиотек для работы с сокетами? Это же беда совсем. Я уже незнаю, хочу очень простого, но побольше чем хэлоу ворлд.
Почему везде избегают написание примера TCP клиента с использованием библиотеки? Почему везде только примеры сервера?
Жаль что Qt нельзя использовать в проекте, там всё это за 5 мин пишется.
Псевдо:
Я сильно много хочу?
МД>P.S. 21-ый век на дворе, но как оказалось нигде не найти примера нормального асинхронного TCP клиента. Жесть! Вообще разочарован.
Так и не запинал этот кусок дерьмища, непонятно как им пользоваться. Абсолютно не приспособленная библиотека для работы с сетью и с сокетами. Везде где можно рекомендовал чтобы никогда не пользовались этой библиотекой. Полное отсутствие примеров дальше чем хэлоу ворлд.
Если я там сделал socket.shutdownSend(), то на следующий socket.send() ошибка. А как возобновить передачу? Жесть.
Если сокеты блокирующие, то таймауты не работают. Если не блокирующие то вообще беда. Как там товарищ привел в пример, SocketReactor, так оно вообще всё наглухо вешает, ибо эти хэндлеры стреляют. Жесть.
Socket::receiveBytes() всегда ноль возвращает, типа graceful shutdown. Жесть!!!
Ну как этим дерьмом пользоваться то?
Про многопоточность вообще молчу, сокеты там даже и не работают.
Сейчас совсем нет никаких нормальных библиотек для работы с сокетами? Это же беда совсем. Я уже незнаю, хочу очень простого, но побольше чем хэлоу ворлд.
Почему везде избегают написание примера TCP клиента с использованием библиотеки? Почему везде только примеры сервера?
Жаль что Qt нельзя использовать в проекте, там всё это за 5 мин пишется.
Псевдо:
class client_connection
{
public:
client_connection() {
m_socket.connect(...);
// register some handlers
...
}
~client_connection() {
m_socket.disconnect();
}
void on_read_data() {
int bytes = m_socket.read();
...
}
void send(unsigned char* data, int length) {
m_socket.send(data, length);
}
private:
socket m_socket;
}
// где то используем
class some_thread_or_widget_or_some_shit {
public:
void OnButtonClickOrJustAnythingElse() {
m_client.send(...);
m_client.getData(...);
m_client.send(...);
m_client.getData(...);
m_client.send(...);
m_client.getData(...);
m_client.send(...);
m_client.getData(...);
m_client.send(...);
m_client.send(...);
m_client.send(...);
m_client.getData(...);
}
private:
client_connection m_client;
}
Я сильно много хочу?