Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 26, 2010 23:29:46

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

socket и Линукс

nauman
Серверная часть работает на нескольких удаленных компах в пределах локальной сети, везде стоит XP.
А линух в этой же локальной сети или вне ее пределов?



Офлайн

#2 Авг. 27, 2010 00:00:16

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

socket и Линукс

Наверное нужно объяснить куда я клоню. То, что линух получает 1448 за раз как раз понятно. Это стандартный для Ethernet MTU(1500) минус TCP и IP заголовки. И как правильно здесь написали - это не ограничение ОС, а вполне нормальное поведение под названием сегментирование TCP, если я правильно помню. И recv нужно звать пока не вычитаем все. Это везде описано. Да вот хотя бы и в примере к модулю socket: http://docs.python.org/library/socket.html#example, раз уж мы о Питоне говорим.

Вопрос в том почему винда так не делает. Может линух просто быстрее и поэтому recv успевает вычитать первый TCP сегмент быстрее, чем приходит второй. Или все-таки виндовый клиент внутри сети, а линуховый снаружи?



Офлайн

#3 Авг. 27, 2010 00:13:13

tmp_a6367100
От:
Зарегистрирован: 2010-08-23
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

socket и Линукс

Вопрос в том почему винда так не делает.
ещё можно покапать в сторону того как работают в венде и linux – алгоритмы формирования “окон” внутри TCP потока ..

…кстате говоря в Windows Vista (se7ven) – подсистему-TCP переработали – а значит возможно и там теперь будет 1448 . проверяли?



Офлайн

#4 Авг. 27, 2010 12:49:46

nauman
От:
Зарегистрирован: 2009-10-28
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

socket и Линукс

Linux и windows на одной машине, в пределах той же сети. На Висте и 7 не проверял.



Офлайн

#5 Авг. 27, 2010 13:30:03

nauman
От:
Зарегистрирован: 2009-10-28
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

socket и Линукс

Всем спасибо за участие, получилось методом склейки из кусочков.



Офлайн

#6 Авг. 27, 2010 13:49:00

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

socket и Линукс

nauman
Всем спасибо за участие, получилось методом склейки из кусочков.
Вдогонку - send тоже может послать не все. Так что проверьте еще и серверный код. Там точно так же нужно делать. Проверять сколько ушло и посылать в цикле пока все не пошлется.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version