Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сокеты в Qt
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Мне нужно чтобы прием и обработка данных выполнялись в отдельном потоке. А оправку данных я мог выполнять из любого потока имеющего указатель или ссылку на socket. Сделал так: .h Код: plaintext 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. .cpp Код: plaintext 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. Но при вызове TCPSocket::sendData я ловлю в логах: Код: sql 1. 2. Как правильно сделать? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 04:57 |
|
||
|
Сокеты в Qt
|
|||
|---|---|---|---|
|
#18+
Попробовал так. Не знаю насколько это правильно. Какие проблемы могут быть при таком раскладе? .h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. .cpp Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 07:00 |
|
||
|
Сокеты в Qt
|
|||
|---|---|---|---|
|
#18+
Вообщем вот что получилось. Чтение и обработка данных в отдельном потоке. Может кому-то пригодиться. Исправления-добавления приветствуются. Вроде работает :) .h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. .cpp Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 07:28 |
|
||
|
Сокеты в Qt
|
|||
|---|---|---|---|
|
#18+
Нашел проблему... Если вызвать socket->disconnectFromHost(), то поток продолжает работать. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 08:33 |
|
||
|
Сокеты в Qt
|
|||
|---|---|---|---|
|
#18+
Сокет и поток это две разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 18:45 |
|
||
|
Сокеты в Qt
|
|||
|---|---|---|---|
|
#18+
White OwlСокет и поток это две разные вещи. Да, но сокет закрыт, а поток висит на waitForReadyRead ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 03:54 |
|
||
|
Сокеты в Qt
|
|||
|---|---|---|---|
|
#18+
Ты закрываешь сокет в одном потоке и надеешься что в другом потоке waitForReadyRead сработает? Не сработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 05:41 |
|
||
|
Сокеты в Qt
|
|||
|---|---|---|---|
|
#18+
White OwlТы закрываешь сокет в одном потоке и надеешься что в другом потоке waitForReadyRead сработает? Не сработает. Уже понял. Так правильнее? Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 10:08 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38536271&tid=2019742]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
5ms |
track hit: |
65ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 16ms |
| total: | 187ms |

| 0 / 0 |
