crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QUdpSocket порядок сообщений, порядок следования сообщений
leonneon_89
  опции профиля:
сообщение 19.12.2013, 12:21
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 5.4.2013
Пользователь №: 3779

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день, хотелось бы узнать как работает QUdpSocket. В протоколе udp написано, что датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. Так вот если я использую простые сокеты, то данные приходят не по порядку, а если использую QUdpSocket, данные приходят как бы по порядку, но многие из них дублируются, может кто нибудь объяснить почему так происходит?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gormih
  опции профиля:
сообщение 19.12.2013, 14:43
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 22.9.2011
Пользователь №: 2901

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(leonneon_89 @ 19.12.2013, 13:21) *
Добрый день, хотелось бы узнать как работает QUdpSocket. В протоколе udp написано, что датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. Так вот если я использую простые сокеты, то данные приходят не по порядку, а если использую QUdpSocket, данные приходят как бы по порядку, но многие из них дублируются, может кто нибудь объяснить почему так происходит?

wireshark может. :rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
leonneon_89
  опции профиля:
сообщение 19.12.2013, 20:19
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 5.4.2013
Пользователь №: 3779

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(gormih @ 19.12.2013, 15:43) *
Цитата(leonneon_89 @ 19.12.2013, 13:21) *
Добрый день, хотелось бы узнать как работает QUdpSocket. В протоколе udp написано, что датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. Так вот если я использую простые сокеты, то данные приходят не по порядку, а если использую QUdpSocket, данные приходят как бы по порядку, но многие из них дублируются, может кто нибудь объяснить почему так происходит?

wireshark может. :rolleyes:


Хотелось бы понять, все таки как устроен в нем tcp/ip стек. Почему сокет сразу не выкидывает приходящие сообщения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 19.12.2013, 21:19
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


обычно двойные пакеты - это ненастроенные свитчи или хабы в сети. если есть кольца - пакеты бродят по ним и дублируются.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
leonneon_89
  опции профиля:
сообщение 19.12.2013, 21:45
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 5.4.2013
Пользователь №: 3779

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 19.12.2013, 22:19) *
обычно двойные пакеты - это ненастроенные свитчи или хабы в сети. если есть кольца - пакеты бродят по ним и дублируются.


А если соединение точка-точка, то как тогда пакет решает когда будет прочитан?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 19.12.2013, 22:19
Сообщение #6


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


пакет ничего не решает. его туда сюда пересылают роутеры и сетевые карты.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
leonneon_89
  опции профиля:
сообщение 19.12.2013, 22:32
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 5.4.2013
Пользователь №: 3779

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 19.12.2013, 23:19) *
пакет ничего не решает. его туда сюда пересылают роутеры и сетевые карты.


Значит у сетевой карты есть буфер, который хранит приходящие сообщения, и по своему алгоритму уже выдает сообщение, когда сокет готов к чтению?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 19.12.2013, 23:03
Сообщение #8


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


там много буферов. и хардварных, и софтварных. и угадывать что-то там нереально.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.1.2025, 18:27