Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.07.2016, 11:38
|
|||
---|---|---|---|
|
|||
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
Есть метод получающий команды и данные с сервера. Команды всегда имеют признак конца команды \r\n. А данные идут без такого признака. Например приходят 2 пакета "123" и "456". Данный метод может прочитать их правильно("123" и "456"), а может так "123456" Как изменить метод чтобы данные всегда читались правильно. Заранее благодарен за ответ. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 11:47
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
webber81Данный метод может прочитать их правильно("123" и "456"), а может так "123456" оба - правильно. webber81Как изменить метод чтобы данные всегда читались правильно. никак webber81А данные идут без такого признака. значит нужно предусмотреть разделитель ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 11:49
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
Изопропилwebber81А данные идут без такого признака. значит нужно предусмотреть разделительИли передавать в начале размер блока данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:00
|
|||
---|---|---|---|
|
|||
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
Прогер который пишет серверную часть говорил что то про ReadLine ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:15
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
webber81Прогер который пишет серверную часть говорил что то про ReadLinewebber81А данные идут без такого признака.В "данных" же разделителя в виде конца строки нет? А так да, можно было бы попробовать Socket + NetworkStream + StreamReader + ReadLine. И если читать в блокирующем режиме, то программа будет проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:24
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
webber81Прогер который пишет серверную часть говорил что то про ReadLine а описание протокола он сделал? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:26
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
Алексей КИ если читать в блокирующем режиме, то программа будет проще.Хотя нет, использовать StreamReader.ReadLineAsync не на много сложнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:30
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
Изопропилwebber81Прогер который пишет серверную часть говорил что то про ReadLine а описание протокола он сделал?С описанием протокола писать клиента скучно и неинтересно. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:41
|
|||
---|---|---|---|
|
|||
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
Алексей К, зачем это вообще делать? всё уже есть в коробочке, надо просто туда заглянуть и взять нужное :) но нет, мы будем писать велосипед ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:52
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
Алексей КС описанием протокола писать клиента скучно и неинтересно. :-) топикстартеру всё таки усвоить нужно, что на прикладном уровне в TCP никаких пакетов нет и его "команда" тоже может прийти по частям ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:53
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
Roman Mejtesзачем это вообще делать? всё уже есть в коробочке, надо просто туда заглянуть и взять нужное :) но нет, мы будем писать велосипед в учебных целях - почему нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 12:58
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
ИзопропилАлексей КС описанием протокола писать клиента скучно и неинтересно. :-) топикстартеру всё таки усвоить нужно, что на прикладном уровне в TCP никаких пакетов нет и его "команда" тоже может прийти по частям"Прогеру, который пишет серверную часть" и является автором протокола это усвоить тоже не помешает. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 13:47
|
|||
---|---|---|---|
|
|||
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
То есть если данные идут без признака конца параметра, то восстановить их первоначальный вид невозможно. Даже если они были отправлены в разных пакетах. Я правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 14:10
|
|||
---|---|---|---|
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
webber81Я правильно понял? да. отправка "123456" и "123","456" - одной или двумя операциями записи - для tcp - одно и то же. пакеты TCP прикладному программисту не видны, к вызовам send и recv отношения не имеют (никаого первоначального вида нет) PS не микроконтроллер ли является сервером? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2016, 14:28
|
|||
---|---|---|---|
|
|||
Как получить пакеты по очереди, а не одновременно (tcp ip) |
|||
#18+
ИзопропилPS не микроконтроллер ли является сервером? Нет. Сервер обычный комп на винде. Серверная прога написана на шарпе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1400466]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 275ms |
total: | 424ms |
0 / 0 |