Witam,
mam kolejny problem z boost asio ;/ . Ale teraz z async_read_until . Chodzi o to , że gdy dostane dane od clienta to zawsze wywala mi errora "Połączenie przerwane przez system lokalny ". Nie wiem dlaczego .
- Rejestracja:około 10 lat
- Ostatnio:ponad 9 lat
- Postów:37

- Rejestracja:prawie 14 lat
- Ostatnio:około 4 lata
Masz sporo błędów w kodzie ale główna przyczyna, dla której dostajesz error code 1236 to to, że wołasz async_read_until
bez zainicjowania end bajtu. Przez co później dostajesz timeout na timerze i woła się callback, który zamyka połączenie. Wtedy też woła się async_read_until
z error codem 1236.
Poza tym masz UB w konstruktorze klasy TSession
inicjujesz timer io_service
pobranym z sock_ptr
, który jeszcze nie został zainicjowany. Przypominam, że kolejność inicjalizacji na liście inicjalizacyjnej konstruktora zależy od kolejności deklaracji pól w klasie. W tym przypadku zadeklarowałeś sock_ptr
przed timerem. Dalej... w kodzie masz pełno literówek/czasami brakuje &/const itd.

- Rejestracja:prawie 14 lat
- Ostatnio:około 4 lata
satirev napisał(a):
Masz sporo błędów w kodzie ale główna przyczyna, dla której dostajesz error code 1236 to to, że wołasz
async_read_until
bez zainicjowania end bajtu
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
satirev